רקורסיה – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ שוחזר מעריכות של 199.203.75.204 (שיחה) לעריכה האחרונה של Matanyabot
Tytyty1 (שיחה | תרומות)
מ ←‏עצרת: הגהה, תקלדה
שורה 52:
דוגמה פשוטה של אלגוריתם רקורסיבי היא אלגוריתם לחישוב <math>n\,!</math>, דהיינו: [[עצרת]] של מספר נתון n. האלגוריתם יבדוק אם המספר הנתון הוא 0, ואם כן, יחזיר "1" (שכן <math>0!\,=\,1</math>). אחרת, האלגוריתם יחשב את <math>(n-1)\,!</math> על ידי '''קריאה לעצמו (באופן רקורסיבי) עם הערך n-1''', ויכפיל את הערך המתקבל ב-n.
 
כך, לצורך חישוב <math>4\,!</math>, האלגוריתם יפעיל את עצמו לקבלת <math>3\,!</math>, אז יפעיל את עצמו לקבלת <math>2\,!</math>, אז יפעיל את עצמו לקבלת <math>1\,!</math>, ואז יפעיל את עצמו לקבלת <math>0\,!</math> במקרה זה האלגוריתם יחזיר את הערך "1",שיוכפל ב-2, שיוכפל ב-3, ויוכפל ב-4 לקבלת התוצאה הרצויה – 24.
 
על פי רוב, מתאפיין אלגוריתם רקורסיבי ב'''תנאי עצירה''' (במקרה זה: <math>n=0</math>), בפתרון של '''מופע פשוט''' יותר של אותה בעיה (הדרישה לחשב עצרת עבור <math>n-1</math>) וב'''חישוב הפתרון''' של הבעיה המקורית מתוך תוצאת חישוב הפתרון החלקי (ההכפלה ב-<math>n</math>).