פייתון/פייתון גרסה 3/פונקציה רקורסיבית
פונקציה רקורסיבית היא פונקציה הקוראת לעצמה בתוך עצמה.
פונקציה n!
[עריכה]הפונקציה הקלאסית להצגת רקורסיה היא פונקציה עצרת.
הפונקציה מקבלת מספר ומחזירה את ערכו בעצרת.
ניתן לייצר את פקודת עצרת באמצעות רקורסיה:
def factorial(num):
if num == 0:
return 1
else:
return num * factorial(num - 1)
נשם לב לפקודה האחרונה בפונקציה, הקוראת אל הפונקציה , , החזר את המספר שהוכנס כפול המספר במיקום ה-
כיצד התכנית תעבוד
[עריכה]עבור תכנס הפונקציה אל התנאי השני, תשמור את 5 ותפעיל שוב את הפונקציה עבור .
הפונקציה תכנס שוב אל התנאי השני, תשמור את 4 ותפעיל שוב את הפונקציה עבור הבא, שלוש.
הפונקציה תכנס שוב אל התנאי השני, תשמור את 3 ותפעיל שוב את הפונקציה עבור הבא, שתים.
הפונקציה תכנס שוב אל התנאי השני, תשמור את 2 ותפעיל שוב את הפונקציה עבור הבא, אחת.
הפונקציה תכנס שוב אל התנאי השני, תשמור את 1 ותפעיל שוב את הפונקציה עבור הבא, אפס.
הפונקציה תכנס אל התנאי הראשון תחזיר 1 ותחזור אחורה לערכי החזרה אותם היא זכרה.
היא תכפיל , תזכור את התוצאה, ותמשיך לעלות אל הפקודה הבאה , , עד שלבסוף תגיע אל
כפי שניתן להבין, התהליך הרקורסיה צורך זיכרון רב בתכנית.
מבנה פונקצית הרקורסיה
[עריכה]מבנה של פונקצית הרקורסיה דומה למבנה של אינדוקציה. קיימת פקודה שעוצרת את תהליך ההרצה. במקרה שלנו כאשר שמפסיקה את פעולת הרקורסיה.
אחריו else שקורא אל פקודת הרקורסיה.
קריאה נוספת
[עריכה]- Tutorial_for_Python_3/Recursion בויקיספר האנגלי.