פייתון/פייתון גרסה 3/פונקציה רקורסיבית

פונקציה רקורסיבית היא פונקציה הקוראת לעצמה בתוך עצמה.

פונקציה n! עריכה

הפונקציה הקלאסית להצגת רקורסיה היא פונקציה עצרת.

הפונקציה מקבלת מספר ומחזירה את ערכו בעצרת.

ניתן לייצר את פקודת עצרת באמצעות רקורסיה:

def factorial(num):
    if num == 0:
        return 1
    else:
        return num * factorial(num - 1)

נשם לב לפקודה האחרונה בפונקציה, הקוראת אל הפונקציה , , החזר את המספר שהוכנס כפול המספר במיקום ה-

כיצד התכנית תעבוד עריכה

עבור תכנס הפונקציה אל התנאי השני, תשמור את 5 ותפעיל שוב את הפונקציה עבור .

הפונקציה תכנס שוב אל התנאי השני, תשמור את 4 ותפעיל שוב את הפונקציה עבור הבא, שלוש.

הפונקציה תכנס שוב אל התנאי השני, תשמור את 3 ותפעיל שוב את הפונקציה עבור הבא, שתים.

הפונקציה תכנס שוב אל התנאי השני, תשמור את 2 ותפעיל שוב את הפונקציה עבור הבא, אחת.

הפונקציה תכנס שוב אל התנאי השני, תשמור את 1 ותפעיל שוב את הפונקציה עבור הבא, אפס.

הפונקציה תכנס אל התנאי הראשון תחזיר 1 ותחזור אחורה לערכי החזרה אותם היא זכרה.

היא תכפיל , תזכור את התוצאה, ותמשיך לעלות אל הפקודה הבאה , , עד שלבסוף תגיע אל

כפי שניתן להבין, התהליך הרקורסיה צורך זיכרון רב בתכנית.

מבנה פונקצית הרקורסיה עריכה

מבנה של פונקצית הרקורסיה דומה למבנה של אינדוקציה. קיימת פקודה שעוצרת את תהליך ההרצה. במקרה שלנו כאשר שמפסיקה את פעולת הרקורסיה.

אחריו else שקורא אל פקודת הרקורסיה.

קריאה נוספת עריכה