1 00:00:00,000 --> 00:00:03,110 >> ПРЕДСЕДНИК 1: У том последњем верзији СИГМА, имплементиран сам оно што бих назвао 2 00:00:03,110 --> 00:00:06,570 итеративни решење, при чему сам користио напред петља да рачунају се све 3 00:00:06,570 --> 00:00:09,720 бројеве измедју 1 и м, након тога враћа суму. 4 00:00:09,720 --> 00:00:12,560 >> Али испоставило се да можемо да користимо још један техника за спровођење исте 5 00:00:12,560 --> 00:00:15,120 функција, техника познат као рекурзије. 6 00:00:15,120 --> 00:00:19,360 Рекурзивни функција, да тако кажем, је једноставно онај који себе назива. 7 00:00:19,360 --> 00:00:21,290 Сада, само по себи, да може бити проблем. 8 00:00:21,290 --> 00:00:24,500 Ако функција једноставно себе назива који себе назива која себе назива, 9 00:00:24,500 --> 00:00:26,080 тај процес може бот икад завршити. 10 00:00:26,080 --> 00:00:30,490 Али докле год смо обухватају тзв база случај, услов који осигурава 11 00:00:30,490 --> 00:00:34,930 да у неким ситуацијама не зовемо сами, да процес иначе 12 00:00:34,930 --> 00:00:37,070 бесконачан петље треба да престане. 13 00:00:37,070 --> 00:00:39,180 >> Хајде да сада реимплемент сигма као што следи. 14 00:00:39,180 --> 00:00:43,810 Ако је н мањи од или једнак 0, сам једноставно, и донекле произвољно, 15 00:00:43,810 --> 00:00:45,670 ће вратити 0.. 16 00:00:45,670 --> 00:00:49,370 Иначе шта ћу да урадите је заправо израчунати сигма за позитивну инт 17 00:00:49,370 --> 00:00:50,460 да сам предао. 18 00:00:50,460 --> 00:00:52,050 >> Сада, шта је сигма од м? 19 00:00:52,050 --> 00:00:55,480 Па, сигма за м је, наравно, Збир од 1 до преко м. 20 00:00:55,480 --> 00:00:58,820 Али, ако размишљамо о томе на други начин, то је једноставно збир м плус м 21 00:00:58,820 --> 00:01:02,560 минус 1 плус м минус 2 и тако даље, скроз доле до 1. 22 00:01:02,560 --> 00:01:08,080 Дакле, у том смислу, чини се да Ја једноставно могу да се врате М Плус. 23 00:01:08,080 --> 00:01:10,210 >> И онда ја треба м минус 1 плус м минус 2. 24 00:01:10,210 --> 00:01:13,470 Али ја имам функцију која може да пружи ми управо то одговор, наиме 25 00:01:13,470 --> 00:01:16,340 сигма од м минус 1. 26 00:01:16,340 --> 00:01:19,670 >> Сада, позивајући се на овај начин не изгледа као најбоља идеја. 27 00:01:19,670 --> 00:01:22,610 Јер ако сигма сигма позива који назива сигма сигма која позива, ви 28 00:01:22,610 --> 00:01:24,480 би помислио да је овај процес можда неће никад завршити. 29 00:01:24,480 --> 00:01:27,720 Али зато смо имали такозвану базу случај на врху ове функције. 30 00:01:27,720 --> 00:01:31,540 Ако услов да проверава да ли је м мање од или једнако 0 Не идем 31 00:01:31,540 --> 00:01:32,610 да се назовем. 32 00:01:32,610 --> 00:01:37,010 Ја уместо тога ћу да се врати 0, који заузврат ће бити додато 33 00:01:37,010 --> 00:01:39,950 претходних бројева које сам сумирањем горе, тиме заустави 34 00:01:39,950 --> 00:01:41,740 иначе бесконачан процес. 35 00:01:41,740 --> 00:01:43,710 >> Хајде да сада видимо да ли овај нови имплементација ради. 36 00:01:43,710 --> 00:01:46,510 Оставимо, саставити, и покренете овај програм. 37 00:01:46,510 --> 00:01:50,640 Направите сигма 1 тачка 1 сигма сласх. 38 00:01:50,640 --> 00:01:52,900 И хајде да пружи Исти бројеви као пре. 39 00:01:52,900 --> 00:01:55,520 2, који би требало да ми дају надамо 3. 40 00:01:55,520 --> 00:01:58,970 Хајде да га обезбеди са 3, који треба ми надамо се добије 6. 41 00:01:58,970 --> 00:02:03,480 И да коначно га обезбеди са 50, који ми заиста даје 1.275. 42 00:02:03,480 --> 00:02:06,130