>> ЗВУЧНИК 1: Во што последната верзија на сигма, јас имплементира она што јас би го нарекол
итеративен решение, при што јас се користи напред јамка за да брои до сите
броеви помеѓу 1 и m, потоа враќање на сумата.
>> Но излегува можеме да го користиме друг техника за спроведување на истата
функција, техника познат како рекурзија.
Рекурзивен функција, така да се каже, е едноставно оној кој се нарекува себеси.
Сега, во себе и за себе, дека може да биде проблем.
Ако функцијата едноставно се нарекува кој се нарекува кој себеси се нарекува,
дека процесот би можел да бот некогаш крај.
Но толку долго како што ние се вклучат во т.н. база случај, состојба која обезбедува
дека во некои ситуации ние не се јавите себе, тој процес на друг начин
бесконечна looping треба да престане.
>> Ајде сега reimplement сигма како што следи.
Ако n е помалку од или еднакво на 0, ми едноставно, и на некој начин произволно,
ќе се вратат 0.
Друго што јас ќе одам да направите е, всушност, пресмета сигма за позитивен цел број
дека јас сум бил предаден.
>> Сега, она што е сигма од м?
Па, сигма од m е, се разбира, на сума од 1 до преку m.
Но, ако мислиме за тоа на друг начин, тоа е едноставно збирот на m, плус м
минус 1 плус м минус 2 и така натаму, сите на патот до 1.
Па во таа смисла, се чини дека Јас едноставно би се вратиле m, плус.
>> А потоа ми треба m минус 1 плус минус м 2.
Но имам функција која може да даде мене токму тој одговор, имено
сигма од м минус 1.
>> Сега, нарекувајќи себе си во овој начин не изгледа како најдобра идеја.
Бидејќи ако сигма повици сигма која повикува сигма која повикува сигма, можете
би помислил дека овој процес може да не некогаш крај.
Но тоа е зошто моравме т.н. база случај на врвот на оваа функција.
На ако услов проверува дали m е помалку од или еднакво на 0 Јас не одам
да си се јавам.
Јас сум наместо ќе се врати 0, што за возврат ќе биде додадена на
претходната броеви кои сум бил собирање нагоре, а со тоа запирање на овој
инаку бесконечна процес.
>> Ајде сега да видиме дали овој нов имплементација работи.
Ајде да се спаси, ги собере, и ја извршите оваа програма.
Направи сигма 1 точка намали сигма 1.
И нека си го обезбеди со ист број како и порано.
2, која се надевам дека треба да ми даде 3.
Нека си го обезбеди со 3, кој се надевам дека треба да ми даде 6.
И ајде конечно да го обезбеди со 50, која навистина ми дава 1275.