แรคคูน (Recursion) เป็นกระบวนการหรือเทคนิคในการวางโครงสร้างของโปรแกรมหรือฟังก์ชั่น ที่มีการเรียกใช้ตัวเองเองซ้ำไปเรื่อยๆ เพื่อทำงานหรือคำนวณข้อมูลในลักษณะที่วนซ้ำ
ใช้แรคคูนเมื่อมีปัญหาหรืองานที่สามารถแบ่งเป็นปัญหาย่อยๆ ที่มีความคล้ายคลึงกัน และสามารถแก้ไขปัญหาย่อยนั้นๆ โดยเรียกใช้ตัวเองและเรียกใช้กลับมาเรื่อยๆ จนกว่าจะเข้าสู่เงื่อนไขการหยุด (base case) เพื่อให้ได้ผลลัพธ์สุดท้ายที่ต้องการ
ในการใช้แรคคูนควรมีคำสั่งสองส่วนหลัก นั้นคือ:
ตัวอย่างของการใช้แรคคูน เช่น การคำนวณค่าแฟกทอเรียล (Factorial) ของเลขจำนวนเต็มบวก แฟกทอเรียลของเลขจำนวนเต็มบวก n (หรือ n!) คือผลคูณของตัวเลขทั้งหมดตั้งแต่ 1 ถึง n
สามารถเขียนฟังก์ชั่นแรคคูนในการคำนวณแฟกทอเรียลได้ดังนี้:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
ในตัวอย่างนี้ เราใช้ Base Case เมื่อ n เป็น 0 โดยกำหนดให้คืนค่า 1 (เพราะแฟกทอเรียลของ 0 เป็น 1) และใช้ Recursive Case เพื่อคำนวณแฟกทอเรียลของเลขจำนวนเต็มบวก n โดยคูณ n กับแฟกทอเรียลของ n-1
เมื่อเราเรียกใช้ฟังก์ชั่นแรคคูน factorial(5) เราจะได้ผลลัพธ์เป็น 5 x 4 x 3 x 2 x 1 = 120
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page