>> SPEAKER 1: שבגרסה האחרונה של סיגמא, אני יישמנו מה שאני מכנה
פתרון איטרטיבי, לפיה נהגתי לולאה קדימה לספור עד כל
מספרים בין 1 מ ', ולאחר מכן החזרת הסכום.
>> אבל מתברר שאנחנו יכולים להשתמש עוד טכניקה כדי ליישם אותו
פונקציה, טכניקה המכונה רקורסיה.
פונקציה רקורסיבית, אם אפשר לומר כך, הוא פשוט אחד שקורא לעצמו.
כעת, בפני עצמו, כי עלול להיות בעיה.
אם פונקציה פשוט קוראת לעצמו בי קורא לעצמו שקורא לעצמו,
תהליך שעשוי Bot אי פעם בסופו.
אבל כל עוד אנו כוללים מה שנקרא מקרה בסיס, מצב שמבטיח
כי במצבים מסוימים אנחנו לא קוראים את עצמנו, תהליך זה של אחרת
לולאות אינסופיות צריכים להפסיק.
>> בואו עכשיו reimplement סיגמא כדלקמן.
אם n הוא קטן או שווה ל -0, אני בפשטות, וקצת באופן שרירותי,
הולך להחזיר 0.
אחר מה אני הולך לעשות הוא למעשה לחשב סיגמא לint החיובי
כי אני כבר מסרתי.
>> עכשיו, מה הוא סיגמא של m?
ובכן, סיגמא של מ 'הוא, כמובן, הסכום של 1 דרך מ '.
אבל אם אנחנו חושבים על זה בדרך אחרת, זה פשוט הסכום של מ 'בתוספת מ'
מינוס 1 בתוספת מ 'מינוס 2 וכן הלאה, כל הדרך למטה עד 1.
אז במובן הזה, נראה כי אני יכול פשוט להחזיר בתוספת מ '.
>> ואז אני צריך מינוס מ ' מ 'בתוספת 1 מינוס 2.
אבל יש לי פונקציה שיכול לתת לי לי דווקא שתשובה, כלומר
סיגמא של מ 'מינוס 1.
>> עכשיו, קורא בדרך זו בעצמי לא נראה כמו הרעיון הטוב ביותר.
כי אם סיגמא קורא סיגמא שקורא סיגמא אשר קורא סיגמא, אתה
היית חושב שהתהליך הזה אולי לא ייגמר לעולם.
אבל זו הסיבה שהייתה לנו את הבסיס שנקרא מקרה בחלק העליון של פונקציה זו.
אם התנאי שבודק אם מ 'הוא קטן או שווה ל -0 אני לא הולך
לקרוא לעצמי.
אני במקום שאני הולך להחזיר 0, אשר בתורו הוא הולך להתווסף ל
מספרים קודמים שאני כבר מסכם למעלה, ובכך לעצור את זה
תהליך אחר אינסופי.
>> בואו עכשיו לראות אם זה חדש יישום עובד.
בואו להציל, לקמפל, ו להפעיל את התכנית.
הפוך נקודת 1 סיגמא סלאש סיגמא 1.
ובואו לספק לו את אותם מספרים כמו קודם.
2, שאמור בתקווה לתת לי 3.
בואו לספק לה 3, אשר אני מקווה שיש לי 6.
ובואו סוף סוף לספק לה 50, שאכן נותן לי 1,275.