Spreker 1: In die laaste weergawe van Sigma, ek geïmplementeer wat ek sou noem 'n iteratiewe oplossing, waardeur ek gebruik om 'n daarna lus om te tel tot al die getalle tussen 1 en m, daarna die terugkeer van die som. Maar dit blyk uit wat ons kan 'n ander gebruik tegniek wat dieselfde te implementeer funksie, 'n tegniek bekend as rekursie. 'N rekursiewe funksie, so te sê, is eenvoudig een wat homself. Nou, in en van die self, wat dalk 'n probleem kan wees. As 'n funksie noem homself net wat noem homself wat self noem, dat die proses kan ooit Bot eindig. Maar so lank as wat ons sluit 'n sogenaamde basis geval, 'n toestand wat verseker dat in sommige situasies wat ons vra nie onsself, dat die proses van die andersins oneindige herhaling moet ophou. Kom ons kyk nou reimplement Sigma soos volg. As n minder as of gelyk aan 0, is ek eenvoudig, en 'n bietjie arbitrêr, gaan terug 0. Anders, wat ek gaan doen, is eintlik bereken Sigma vir die positiewe int dat ek oorhandig. Nou, wat is Sigma van m? Wel, Sigma van m is, natuurlik, die som van 1 tot deur m. Maar as ons dink oor dit die ander manier, dit is eenvoudig die som van m plus m minus 1 plus minus 2 m en so meer, al die pad af tot 1. So in daardie sin, blyk dit dat Ek kon eenvoudig terugkeer m plus. En dan moet ek m minus 1 plus minus 2 m. Maar ek het 'n funksie wat kan gee my juis die antwoord, naamlik Sigma van m minus 1. Nou, 'n beroep myself op hierdie manier nie lyk soos die beste idee. Want as Sigma noem Sigma wat roep Sigma wat Sigma roep, moet jy sou dink dat hierdie proses dalk nie ooit eindig. Maar dit is die rede waarom ons die sogenaamde basis geval aan die bokant van hierdie funksie. Die as voorwaarde dat tjeks indien m minder as of gelyk aan 0 Ek gaan nie om myself te noem. Ek plaas gaan terug 0, wat op sy beurt gaan bygevoeg word om die vorige nommers wat ek het is 'n opsomming up, en daardeur te stop hierdie anders oneindige proses. Kom ons kyk nou of hierdie nuwe implementering werk. Kom ons spaar, saamstel, en hierdie program. Maak Sigma 1 dot streep Sigma 1. En laat ons gee dit met die dieselfde getalle as tevore. 2, wat hopelik gee my 3. Kom ons gee dit met 3, wat moet hopelik gee my 6. En laat ons uiteindelik gee dit met 50, wat inderdaad gee my 1275.