1 00:00:00,000 --> 00:00:03,110 >> Ræðumaður 1: Í þeirri síðustu útgáfu Sigma, framkvæmda ég það sem ég myndi kalla 2 00:00:03,110 --> 00:00:06,570 endurtekningu lausn, þar sem ég notaði hlakka lykkja til að telja upp allt í 3 00:00:06,570 --> 00:00:09,720 tölur á milli 1 og M, þar á eftir aftur summu. 4 00:00:09,720 --> 00:00:12,560 >> En það kemur í ljós að við getum notað annan tækni til að hrinda í framkvæmd sem sömu 5 00:00:12,560 --> 00:00:15,120 virka, tækni þekktur sem endurkvæmni. 6 00:00:15,120 --> 00:00:19,360 A endurkvæma virka, svo að segja, er einfaldlega einn sem kallar sig. 7 00:00:19,360 --> 00:00:21,290 Nú, í sjálfu sér, að gæti verið vandamál. 8 00:00:21,290 --> 00:00:24,500 Ef fall kallar einfaldlega sig sem kallar sig sem kallar sig, 9 00:00:24,500 --> 00:00:26,080 þessi aðferð gæti Bot alltaf enda. 10 00:00:26,080 --> 00:00:30,490 En svo lengi sem við fela í sér svokallað stöð að ræða, ástand sem tryggir 11 00:00:30,490 --> 00:00:34,930 að í sumum tilvikum köllum við ekki okkur, að ferlið við að öðru leyti 12 00:00:34,930 --> 00:00:37,070 óendanlega lykkja ætti hætta. 13 00:00:37,070 --> 00:00:39,180 >> Skulum nú reimplement Sigma eins og hér segir. 14 00:00:39,180 --> 00:00:43,810 Ef n er minna en eða jafnt og 0, I er einfaldlega, og nokkuð eftir geðþótta, 15 00:00:43,810 --> 00:00:45,670 fara til baka á 0. 16 00:00:45,670 --> 00:00:49,370 Annars það sem ég ætla að gera er í raun reikna Sigma fyrir jákvæða int 17 00:00:49,370 --> 00:00:50,460 sem ég hef verið afhent. 18 00:00:50,460 --> 00:00:52,050 >> Nú, hvað er Sigma af m? 19 00:00:52,050 --> 00:00:55,480 Ja, Sigma m er, að sjálfsögðu, summan af 1 upp í gegnum m. 20 00:00:55,480 --> 00:00:58,820 En ef við hugsum um það í hina áttina, það er einfaldlega summan af m plús M 21 00:00:58,820 --> 00:01:02,560 mínus 1 plús m mínus 2 og svo framvegis, alla leið niður til 1.. 22 00:01:02,560 --> 00:01:08,080 Svo í þeim skilningi, það virðist sem Ég gæti einfaldlega aftur m plús. 23 00:01:08,080 --> 00:01:10,210 >> Og þá þarf ég m mínus 1 plús m mínus 2. 24 00:01:10,210 --> 00:01:13,470 En ég hef aðgerð sem getur gefið mig einmitt það svar, þ.e. 25 00:01:13,470 --> 00:01:16,340 Sigma M mínus 1. 26 00:01:16,340 --> 00:01:19,670 >> Nú, kalla mig á þennan hátt er ekki virðast eins og the bestur hugmynd. 27 00:01:19,670 --> 00:01:22,610 Vegna þess að ef Sigma kallar Sigma sem kallar Sigma sem kallar Sigma, þú 28 00:01:22,610 --> 00:01:24,480 myndi halda að þetta ferli gæti ekki alltaf enda. 29 00:01:24,480 --> 00:01:27,720 En það er þess vegna sem við höfðum svokallaða stöð mál efst á þessa aðgerð. 30 00:01:27,720 --> 00:01:31,540 If ástand sem athugar hvort m er minna en eða jafnt og 0 Ég er ekki að fara 31 00:01:31,540 --> 00:01:32,610 að kalla mig. 32 00:01:32,610 --> 00:01:37,010 Ég ætla í staðinn að fara að skila 0, sem síðan er að fara að bætast við 33 00:01:37,010 --> 00:01:39,950 fyrri tölur sem ég hef verið að því upp, þannig að stoppa þetta 34 00:01:39,950 --> 00:01:41,740 ella óendanlega ferli. 35 00:01:41,740 --> 00:01:43,710 >> Skulum nú sjá hvort þessi nýja framkvæmd virkar. 36 00:01:43,710 --> 00:01:46,510 Skulum spara, safna saman, og keyra þetta forrit. 37 00:01:46,510 --> 00:01:50,640 Gerðu sigma 1 punktur rista Sigma 1. 38 00:01:50,640 --> 00:01:52,900 Og við skulum gefa það með sömu tölur og áður. 39 00:01:52,900 --> 00:01:55,520 2, sem ætti vonandi að gefa mér 3. 40 00:01:55,520 --> 00:01:58,970 Skulum veita hana með 3, sem ætti vonandi að gefa mér 6. 41 00:01:58,970 --> 00:02:03,480 Og við skulum gefa loksins það með 50, sem vissulega gefur mér 1275. 42 00:02:03,480 --> 00:02:06,130