>> СПІКЕР 1: У цьому останній версії сигма, я реалізував те, що я назвав би
ітераційне рішення, в результаті чого я використовував вперед петля підрахувати всі
числа від 1 до м, після цього повертаючи суму.
>> Але, виявляється, ми можемо використовувати інший Техніка для реалізації в тому ж
Функція, метод, відомий як рекурсії.
Рекурсивна функція, так сказати, просто той, який називає себе.
Тепер, саме по собі, що можуть бути проблеми.
Якщо функція просто називає себе, які називає себе яка називає себе,
що процес може бот-небудь закінчиться.
Але поки ми включають так званий базовий варіант, умова, яке забезпечує
що в деяких ситуаціях ми не називаємо самі, що процес в іншому випадку
нескінченне зациклення має бути припинено.
>> Давайте тепер перевизначити сигма таким чином.
Якщо п менше або дорівнює 0, я просто, і кілька довільно,
збирається повертати 0.
Інше, що я збираюся зробити, це насправді обчислити сигма для позитивного міжнар
, Що я передав.
>> Тепер, що сигма м?
Ну, сигма т, звичайно, сума 1 через м.
Але якщо ми думаємо про це по-іншому, це просто сума м плюс м
мінус 1 плюс мінус 2 м і т. д., все, аж до 1.
Так що в цьому сенсі, здається, що Я міг просто повернутися M Plus.
>> А потім мені потрібно м мінус 1 плюс 2 м мінус.
Але у мене є функція, яка може дати мені точно, що відповідь, а саме
сигма т мінус 1.
>> Тепер, називаючи себе в такий спосіб не походити на кращу ідею.
Тому що, якщо сигма називає сигма який викликає сигма яка закликає сигма, ви
було б думати, що цей процес ніколи не може закінчитися.
Але саме тому у нас був так званий базу випадок у верхній частині цієї функції.
Якщо умова, яку перевіряє, якщо т менше або дорівнює 0 Я не збираюся
називати себе.
Я замість збирається повертати 0, які в свою чергу, будуть додані до
попередні цифри, які я підсумовування вгору, таким чином зупиняючи це
в іншому випадку нескінченний процес.
>> Давайте подивимося, якщо це нове реалізація працює.
Врятуємо, компіляції та запустити цю програму.
Зробити сигма 1 точка слеш сигма 1.
І давайте надати йому ті ж номери, що й раніше.
2, які, будемо сподіватися, дати мені 3.
Давайте надати йому 3, що я сподіваюся дати мені 6.
І давайте, нарешті, забезпечити його 50, яка дійсно дає мені 1275.