>> SPEAKER 1: V tejto poslednej verzii sigma, som implementoval to, čo by som nazval
iteratívny riešenie, kedy som použil vpred slučka počítať so všetkými
čísla medzi 1 a m, potom vrátenie sumy.
>> Ale ukazuje sa, môžeme použiť iný technika na vykonanie toho istého
funkcie, technika známy ako rekurzia.
Rekurzívne funkcie, aby som tak povedal, je jednoducho ten, ktorý volá sama seba.
Teraz, samo o sebe, že by mohol byť problém.
Keď je funkcia jednoducho volá sama seba, ktoré volá sama seba, ktorá volá sama seba,
že proces môže Bot niekedy skončí.
Ale tak dlho, ako sme sú tzv referenčný prípad, stav, ktorý zaisťuje
že v niektorých situáciách sa nevolajte sami, že proces inak
nekonečný smyčkování by mala byť zrušená.
>> Poďme sa teraz implementujeme sigma nasledovne.
Ak n je menšie ako alebo rovné 0, som jednoducho, a trochu ľubovoľne,
bude return 0.
Inak to, čo budem robiť, je v skutočnosti vypočítať Sigma pre pozitívny int
že som podal.
>> A teraz, čo je sigma m?
Tak, sigma m je, samozrejme, súčet 1 až cez m.
Ale ak si myslíme, že o tom na druhú stranu, je to proste suma m m plus
mínus 1 plus mínus m 2, a tak ďalej, celú cestu až na 1.
Takže v tomto zmysle sa zdá, že Mohol by som jednoducho vrátiť M plus.
>> A potom musím m mínus 1 plus mínus 2 m
Ale ja mám funkciu, ktorá môže dať mi presne tá odpoveď, a to
sigma m mínus jedna.
>> Teraz, volať seba týmto spôsobom nie je Zdá sa, ako najlepší nápad.
Pretože ak sigma volá sigma, ktorý volá sigma, ktorý volá sigma, môžete
by si myslel, že tento proces nemusí nikdy skončiť.
Ale to je dôvod, prečo sme mali tzv základne puzdro na vrchole tejto funkcie.
Ak podmienka, ktorá kontroluje, či m je menšie alebo rovné 0 Nemienim
volať sám.
Ja namiesto toho ísť vrátiť 0, čo potom sa bude pridaný do
predchádzajúce čísla, ktoré som sčítavať nahor, čím sa zastaví tento
inak nekonečný proces.
>> Pozrime sa teraz, či tento nový Vykonávaní stavebných prác.
Poďme zachrániť, zostaviť, a spustiť tento program.
Uistite sa sigma 1 bodka lomítko sigma 1.
A poďme poskytne mu rovnaké čísla ako predtým.
2, ktorý by mal snáď mi dať tri.
Poďme jej poskytli 3, ktoré by snáď dať mi šesť.
A poďme konečne poskytne mu 50, ktorá mi naozaj dáva 1275.