>> SPEAKER 1: В тази последна версия на сигма, въведох това, което аз бих нарекъл
повтарящ решение, с което аз използвах напред контур да брои до всички изброени
числа между 1 и m, след това връщане на сумата.
>> Но се оказва, че ние можем да използваме друг техника, за да приложат същата
функция, техника известен като рекурсия.
A рекурсивна функция, така да се каже, е просто един, който нарича себе си.
Сега, само по себе си, че може да бъде проблем.
Ако една функция просто нарича себе си, които нарича себе си, която нарича себе си,
този процес може да бот някога свършва.
Но доколкото се включва така наречените базов модел, състояние, което осигурява
че в някои ситуации не се обади себе си, че процесът на иначе
безкрайна примка трябва да се прекрати.
>> Нека сега reimplement Sigma, както следва.
Ако п е по-малко от или равно на 0, съм просто, и в известна степен произволно,
ще върне 0.
Иначе това, което аз ще направя, е всъщност изчисли сигма за положителната INT
че съм бил предаден.
>> Сега, това, което е на сигма m?
Е, сигма т е, разбира се, сумата от 1 до чрез m.
Но ако ние мислим за него по друг начин, това е просто сумата от m плюс m
минус 1 плюс минус m 2 и така нататък, по целия път надолу към 1.
Така че в този смисъл, изглежда, че Бих могъл просто да се върне m плюс.
>> И тогава аз трябва m ​​минус 1 m плюс минус 2.
Но аз имам една функция, която може да даде мен точно този отговор, а именно
сигма т минус 1.
>> Сега, аз се обадите по този начин не изглежда като най-добрата идея.
Защото ако сигма призовава сигма, която призовава сигма която призовава сигма, вие
би си помислил, че този процес Може никога да не свършва.
Но това е защо ние трябваше така наречената база случай в началото на тази функция.
The ако условието, че проверява дали е m по-малка или равна на 0 няма да ходя
да се нарека.
Аз, вместо да се върне 0, което на свой ред ще бъде добавен към
предходни номера, че съм бил сумиране нагоре, като по този начин спирането на тази
в противен случай безкраен процес.
>> Нека сега да видим дали този нов изпълнение работи.
Да спасим, съставяне и стартирате тази програма.
Направете сигма 1 точка наклонена черта сигма 1.
И нека си го осигури с същите номера, както преди.
2, които трябва да се надяваме да ми даде три.
Нека да му предостави 3, които трябва да се надяваме да ми даде 6.
И нека най-накрая да му предостави 50, което наистина ми дава 1275.