1 00:00:00,000 --> 00:00:03,110 >> SPEAKER 1: Selles viimases versioonis sigma ma ellu, mida ma nimetaksin 2 00:00:03,110 --> 00:00:06,570 iteratiivne lahendus, kusjuures ma kasutasin edasi loop lugema üles kõiki 3 00:00:06,570 --> 00:00:09,720 numbrid vahemikus 1 m, seejärel tagastades summa. 4 00:00:09,720 --> 00:00:12,560 >> Aga selgub, saame kasutada teise tehnikat rakendada sama 5 00:00:12,560 --> 00:00:15,120 Funktsiooni tehnikat tuntud arvuni. 6 00:00:15,120 --> 00:00:19,360 Rekursiivne funktsioon, kui nii võib öelda, on lihtsalt üks, mis nimetab ennast. 7 00:00:19,360 --> 00:00:21,290 Nüüd ja iseenesest, et võib probleem olla. 8 00:00:21,290 --> 00:00:24,500 Kui funktsioon lihtsalt nimetab ennast mis kutsub ennast mis nimetab ennast, 9 00:00:24,500 --> 00:00:26,080 et protsess võib Bot kunagi lõppema. 10 00:00:26,080 --> 00:00:30,490 Kuid nii kaua, kui me lisame nn tugipunkti, tingimusel, et tagatakse 11 00:00:30,490 --> 00:00:34,930 et mõnes olukorras me ei kutsu ise, et protsess teisiti 12 00:00:34,930 --> 00:00:37,070 lõpmatu silmukoiminen tuleks lõpetada. 13 00:00:37,070 --> 00:00:39,180 >> Olgem nüüd implementeerid sigma järgmiselt. 14 00:00:39,180 --> 00:00:43,810 Kui n on väiksem või võrdne 0, olen lihtsalt, ja mõnevõrra meelevaldselt, 15 00:00:43,810 --> 00:00:45,670 läheb tagasi 0. 16 00:00:45,670 --> 00:00:49,370 Else, mida ma lähen tegema, on tegelikult arvutada sigma positiivse int 17 00:00:49,370 --> 00:00:50,460 et olen kätte. 18 00:00:50,460 --> 00:00:52,050 >> Nüüd, mis on sigma m? 19 00:00:52,050 --> 00:00:55,480 No sigma m on muidugi summa 1 kuni läbi m. 20 00:00:55,480 --> 00:00:58,820 Aga kui me mõtleme selle muul viisil, see on lihtsalt summa m pluss m 21 00:00:58,820 --> 00:01:02,560 miinus 1 pluss m miinus 2 ja nii edasi, kõik tee alla 1. 22 00:01:02,560 --> 00:01:08,080 Nii selles mõttes, tundub, et Ma võiks lihtsalt tagasi m pluss. 23 00:01:08,080 --> 00:01:10,210 >> Ja siis ma pean m miinus 1 pluss m -2. 24 00:01:10,210 --> 00:01:13,470 Aga mul on funktsioon, mis võib anda mulle just see, et vastus, nimelt 25 00:01:13,470 --> 00:01:16,340 sigma m -1. 26 00:01:16,340 --> 00:01:19,670 >> Nüüd, kutsudes ennast sel viisil ei tunduda parim idee. 27 00:01:19,670 --> 00:01:22,610 Sest kui sigma kutsub sigma mis nõuab sigma mis nõuab Sigma, siis 28 00:01:22,610 --> 00:01:24,480 Võiks arvata, et selle protsessi pruugi kunagi lõppema. 29 00:01:24,480 --> 00:01:27,720 Aga sellepärast me pidime niinimetatud baas juhul ülaosas seda funktsiooni. 30 00:01:27,720 --> 00:01:31,540 Kui tingimus, mis kontrollib, kui m on väiksem või võrdne 0 Ma ei kavatse 31 00:01:31,540 --> 00:01:32,610 helistada ise. 32 00:01:32,610 --> 00:01:37,010 Olen asemel läheb tagasi 0, mis omakorda läheb lisada 33 00:01:37,010 --> 00:01:39,950 eelmine numbrid, mis ma olen liidetakse up, peatades sellega see 34 00:01:39,950 --> 00:01:41,740 muidu lõpmatu protsess. 35 00:01:41,740 --> 00:01:43,710 >> Vaatame nüüd, kas see uus rakendamine toimib. 36 00:01:43,710 --> 00:01:46,510 Hoiame, koostada ja käivitada see programm. 37 00:01:46,510 --> 00:01:50,640 Tee sigma 1 dot kärpida sigma 1. 38 00:01:50,640 --> 00:01:52,900 Ja olgem annab talle samad numbrid kui enne. 39 00:01:52,900 --> 00:01:55,520 2, mis peaks loodetavasti annab mulle 3. 40 00:01:55,520 --> 00:01:58,970 Teeme annab talle 3, mis Loodetavasti mulle 6. 41 00:01:58,970 --> 00:02:03,480 Ja olgem lõpuks annab talle 50, mis tõepoolest annab mulle 1275. 42 00:02:03,480 --> 00:02:06,130