1 00:00:00,000 --> 00:00:03,110 >> Spreker 1: In die laaste weergawe van Sigma, ek geïmplementeer wat ek sou noem 2 00:00:03,110 --> 00:00:06,570 'n iteratiewe oplossing, waardeur ek gebruik om 'n daarna lus om te tel tot al die 3 00:00:06,570 --> 00:00:09,720 getalle tussen 1 en m, daarna die terugkeer van die som. 4 00:00:09,720 --> 00:00:12,560 >> Maar dit blyk uit wat ons kan 'n ander gebruik tegniek wat dieselfde te implementeer 5 00:00:12,560 --> 00:00:15,120 funksie, 'n tegniek bekend as rekursie. 6 00:00:15,120 --> 00:00:19,360 'N rekursiewe funksie, so te sê, is eenvoudig een wat homself. 7 00:00:19,360 --> 00:00:21,290 Nou, in en van die self, wat dalk 'n probleem kan wees. 8 00:00:21,290 --> 00:00:24,500 As 'n funksie noem homself net wat noem homself wat self noem, 9 00:00:24,500 --> 00:00:26,080 dat die proses kan ooit Bot eindig. 10 00:00:26,080 --> 00:00:30,490 Maar so lank as wat ons sluit 'n sogenaamde basis geval, 'n toestand wat verseker 11 00:00:30,490 --> 00:00:34,930 dat in sommige situasies wat ons vra nie onsself, dat die proses van die andersins 12 00:00:34,930 --> 00:00:37,070 oneindige herhaling moet ophou. 13 00:00:37,070 --> 00:00:39,180 >> Kom ons kyk nou reimplement Sigma soos volg. 14 00:00:39,180 --> 00:00:43,810 As n minder as of gelyk aan 0, is ek eenvoudig, en 'n bietjie arbitrêr, 15 00:00:43,810 --> 00:00:45,670 gaan terug 0. 16 00:00:45,670 --> 00:00:49,370 Anders, wat ek gaan doen, is eintlik bereken Sigma vir die positiewe int 17 00:00:49,370 --> 00:00:50,460 dat ek oorhandig. 18 00:00:50,460 --> 00:00:52,050 >> Nou, wat is Sigma van m? 19 00:00:52,050 --> 00:00:55,480 Wel, Sigma van m is, natuurlik, die som van 1 tot deur m. 20 00:00:55,480 --> 00:00:58,820 Maar as ons dink oor dit die ander manier, dit is eenvoudig die som van m plus m 21 00:00:58,820 --> 00:01:02,560 minus 1 plus minus 2 m en so meer, al die pad af tot 1. 22 00:01:02,560 --> 00:01:08,080 So in daardie sin, blyk dit dat Ek kon eenvoudig terugkeer m plus. 23 00:01:08,080 --> 00:01:10,210 >> En dan moet ek m minus 1 plus minus 2 m. 24 00:01:10,210 --> 00:01:13,470 Maar ek het 'n funksie wat kan gee my juis die antwoord, naamlik 25 00:01:13,470 --> 00:01:16,340 Sigma van m minus 1. 26 00:01:16,340 --> 00:01:19,670 >> Nou, 'n beroep myself op hierdie manier nie lyk soos die beste idee. 27 00:01:19,670 --> 00:01:22,610 Want as Sigma noem Sigma wat roep Sigma wat Sigma roep, moet jy 28 00:01:22,610 --> 00:01:24,480 sou dink dat hierdie proses dalk nie ooit eindig. 29 00:01:24,480 --> 00:01:27,720 Maar dit is die rede waarom ons die sogenaamde basis geval aan die bokant van hierdie funksie. 30 00:01:27,720 --> 00:01:31,540 Die as voorwaarde dat tjeks indien m minder as of gelyk aan 0 Ek gaan nie 31 00:01:31,540 --> 00:01:32,610 om myself te noem. 32 00:01:32,610 --> 00:01:37,010 Ek plaas gaan terug 0, wat op sy beurt gaan bygevoeg word om die 33 00:01:37,010 --> 00:01:39,950 vorige nommers wat ek het is 'n opsomming up, en daardeur te stop hierdie 34 00:01:39,950 --> 00:01:41,740 anders oneindige proses. 35 00:01:41,740 --> 00:01:43,710 >> Kom ons kyk nou of hierdie nuwe implementering werk. 36 00:01:43,710 --> 00:01:46,510 Kom ons spaar, saamstel, en hierdie program. 37 00:01:46,510 --> 00:01:50,640 Maak Sigma 1 dot streep Sigma 1. 38 00:01:50,640 --> 00:01:52,900 En laat ons gee dit met die dieselfde getalle as tevore. 39 00:01:52,900 --> 00:01:55,520 2, wat hopelik gee my 3. 40 00:01:55,520 --> 00:01:58,970 Kom ons gee dit met 3, wat moet hopelik gee my 6. 41 00:01:58,970 --> 00:02:03,480 En laat ons uiteindelik gee dit met 50, wat inderdaad gee my 1275. 42 00:02:03,480 --> 00:02:06,130