1 00:00:00,000 --> 00:00:03,110 >> SPEAKER 1: En tiu lasta versio de sigma, mi implementado kion mi nomus 2 00:00:03,110 --> 00:00:06,570 ripeta solvo, per kiu mi uzis antaŭen buklo kalkuli ĉiujn el la 3 00:00:06,570 --> 00:00:09,720 numeroj inter 1 kaj m, poste redonante la rezulton. 4 00:00:09,720 --> 00:00:12,560 >> Sed ĝi rezultas ni povas uzi alian tekniko apliki tiun saman 5 00:00:12,560 --> 00:00:15,120 funkcio, tekniko konata kiel rikuro. 6 00:00:15,120 --> 00:00:19,360 A rekursia funkcio, por tiel diri, Estas simple, kiu nomas sin. 7 00:00:19,360 --> 00:00:21,290 Nun, en kaj de si mem, ke povus esti problemo. 8 00:00:21,290 --> 00:00:24,500 Se funkcio simple nomas sin kiu nomas sin kiu nomas sin, 9 00:00:24,500 --> 00:00:26,080 tiu procezo eble bot iam finos. 10 00:00:26,080 --> 00:00:30,490 Sed tiom longe kiom ni inkluzivas tn bazo kazo, kondiĉo kiu certigas 11 00:00:30,490 --> 00:00:34,930 ke en iuj situacioj, ni ne nomas ni mem, ke la procezo de alie 12 00:00:34,930 --> 00:00:37,070 senfina looping devus ĉesi. 13 00:00:37,070 --> 00:00:39,180 >> Ni nun reimplement sigma jene. 14 00:00:39,180 --> 00:00:43,810 Se n estas malpli ol aŭ egala al 0, mi estas simple, kaj iom arbitre, 15 00:00:43,810 --> 00:00:45,670 tuj revenos 0. 16 00:00:45,670 --> 00:00:49,370 Alie, kion mi faros estas reale komputi sigma por la pozitiva int 17 00:00:49,370 --> 00:00:50,460 ke mi estis transdonita. 18 00:00:50,460 --> 00:00:52,050 >> Nun, kio estas sigma de m? 19 00:00:52,050 --> 00:00:55,480 Nu, sigma de m estas, kompreneble, la sumo de 1 supren tra m. 20 00:00:55,480 --> 00:00:58,820 Sed se ni pensas pri ĝi en la alia direkto, ĝi estas simple la sumo de m plus m 21 00:00:58,820 --> 00:01:02,560 minus 1 plus m minus 2 kaj tiel plu, la tutan vojon malsupren al 1. 22 00:01:02,560 --> 00:01:08,080 Do en tiu senco, ĝi ŝajnas ke Mi povis simple reveni m pli. 23 00:01:08,080 --> 00:01:10,210 >> Kaj tiam mi bezonas m minus 1 plus m minus 2. 24 00:01:10,210 --> 00:01:13,470 Sed mi havas funkcion kiu povas doni mi ĝuste tiun respondon, nome 25 00:01:13,470 --> 00:01:16,340 sigma de m minus 1. 26 00:01:16,340 --> 00:01:19,670 >> Nun, nomante min en tiu maniero faras ne ŝajnas kiel la pli bona ideo. 27 00:01:19,670 --> 00:01:22,610 Ĉar se sigma nomas sigma kiu nomas sigma kiu nomas sigma, vi 28 00:01:22,610 --> 00:01:24,480 kredus ke tiu procezo eble neniam finiĝi. 29 00:01:24,480 --> 00:01:27,720 Sed tio estas kial ni havis la tn bazo kazo ĉe la supro de ĉi tiu funkcio. 30 00:01:27,720 --> 00:01:31,540 La se kondiĉo kiu kontrolas, se m estas malpli ol aŭ egala al 0 Mi ne tuj 31 00:01:31,540 --> 00:01:32,610 voki min. 32 00:01:32,610 --> 00:01:37,010 Mi anstataŭ tuj revenos 0, kiu laŭvice tuj estos aldonitaj al la 33 00:01:37,010 --> 00:01:39,950 antaŭaj numeroj kiu Mi estis sumanta supren, tiel halti ĉi 34 00:01:39,950 --> 00:01:41,740 alie senfina procezo. 35 00:01:41,740 --> 00:01:43,710 >> Ni nun vidi, ĉu ĉi nova efektivigo funkcias. 36 00:01:43,710 --> 00:01:46,510 Ni ŝparas, kompili, kaj kuros ĉi programo. 37 00:01:46,510 --> 00:01:50,640 Faru sigma 1 dot oblikvo sigma 1. 38 00:01:50,640 --> 00:01:52,900 Kaj ni provizas ĝin per la samajn nombrojn kiel antaŭe. 39 00:01:52,900 --> 00:01:55,520 2, kiu devus espereble donos al mi 3. 40 00:01:55,520 --> 00:01:58,970 Ni provizi ĝin per 3, kiu devus espereble donos al mi 6. 41 00:01:58,970 --> 00:02:03,480 Kaj ni fine provizi ĝin per 50, kio efektive donas min 1.275. 42 00:02:03,480 --> 00:02:06,130