การเรียกซ้ำ
การเรียกซ้ำมีประโยชน์ในการแบ่งและแก้ปัญหา การเรียกซ้ำแต่ละครั้งจะแยกการโทรแบบเรียกซ้ำอื่นๆ ที่ศูนย์กลางของฟังก์ชันแบบเรียกซ้ำคือกรณีสองประเภท:กรณีพื้นฐาน ซึ่งบอกการเรียกซ้ำเมื่อจะยุติ และกรณีแบบเรียกซ้ำที่เรียกใช้ฟังก์ชันที่พวกเขาอยู่ ปัญหาง่าย ๆ ที่ใช้วิธีแก้ปัญหาแบบเรียกซ้ำคือการคำนวณแฟกทอเรียล อัลกอริธึมแบบเรียกซ้ำแฟกทอเรียลมีสองกรณี:กรณีฐานเมื่อ n =0 และกรณีแบบเรียกซ้ำเมื่อ n>0
ย้อนรอย
การย้อนรอยเป็นอัลกอริทึมทั่วไปสำหรับการค้นหาวิธีแก้ไขปัญหาทางคอมพิวเตอร์ ซึ่งจะสร้างทางเลือกในการแก้ปัญหาแบบค่อยเป็นค่อยไป และปฏิเสธการประมวลผลแทร็กต่อไปที่อาจนำไปสู่วิธีแก้ปัญหาที่เป็นไปไม่ได้ การย้อนรอยช่วยให้เรายกเลิกตัวเลือกก่อนหน้าได้หากพบว่ามีข้อผิดพลาด
การใช้งานแฟคทอเรียลโดยทั่วไปมีดังต่อไปนี้ -
ตัวอย่าง
def factorial(n): #test for a base case if n==0: return 1 # make a calculation and a recursive call f= n*factorial(n-1) print(f) return(f) factorial(4)
รหัสนี้พิมพ์ตัวเลข 1, 2, 4, 24 ในการคำนวณแฟคทอเรียล 4 ต้องใช้การเรียกซ้ำสี่ครั้งบวกกับการเรียกหลักเริ่มต้น