1 00:00:00,000 --> 00:00:03,110 >> SPEAKER 1: Šajā pēdējā versijā sigma, es īsteno to, ko es gribētu nosaukt 2 00:00:03,110 --> 00:00:06,570 iteratīvs risinājums, kuru es izmantoju priekšu cilpa saskaitīt visus 3 00:00:06,570 --> 00:00:09,720 numurus starp 1 un m, pēc tam atpakaļ summu. 4 00:00:09,720 --> 00:00:12,560 >> Bet izrādās, mēs varam izmantot citu paņēmiens, lai īstenotu to pašu 5 00:00:12,560 --> 00:00:15,120 funkciju, tehniku pazīstams kā rekursijas. 6 00:00:15,120 --> 00:00:19,360 Rekursīvas funkcijas, tā sakot, ir tikai viens, kas sevi dēvē. 7 00:00:19,360 --> 00:00:21,290 Tagad, un pats par sevi, ka varētu būt problēma. 8 00:00:21,290 --> 00:00:24,500 Ja funkcija vienkārši sevi dēvē kas sevi dēvē kas sevi dēvē, 9 00:00:24,500 --> 00:00:26,080 šis process varētu bot kādreiz beigsies. 10 00:00:26,080 --> 00:00:30,490 Bet tik ilgi, kamēr mēs iekļaut tā saukto bāzes scenārijs, nosacījums, kas nodrošina 11 00:00:30,490 --> 00:00:34,930 ka dažās situācijās mēs saucam paši, ka process ir citādi 12 00:00:34,930 --> 00:00:37,070 bezgalīgs looping būtu jāpārtrauc. 13 00:00:37,070 --> 00:00:39,180 >> Pieņemsim tagad reimplement sigma šādi. 14 00:00:39,180 --> 00:00:43,810 Ja n ir mazāks par vai vienāds ar 0, Es vienkārši, un diezgan patvaļīgi, 15 00:00:43,810 --> 00:00:45,670 gatavojas atgriezties 0. 16 00:00:45,670 --> 00:00:49,370 Cits, ko es esmu gatavojas darīt, ir faktiski aprēķināt Sigma pozitīvo int 17 00:00:49,370 --> 00:00:50,460 , ka es esmu bijis nodots. 18 00:00:50,460 --> 00:00:52,050 >> Tagad, kas ir sigma no m? 19 00:00:52,050 --> 00:00:55,480 Nu, sigma un m ir, protams, 1 summa līdz ar m. 20 00:00:55,480 --> 00:00:58,820 Bet, ja mēs domājam par to citā veidā, tas ir vienkārši un m plus m summa 21 00:00:58,820 --> 00:01:02,560 mīnus 1 plus m mīnus 2, un tā tālāk, līdz galam ar 1. 22 00:01:02,560 --> 00:01:08,080 Tātad šajā ziņā, šķiet, ka Es varētu vienkārši atgriezties m plus. 23 00:01:08,080 --> 00:01:10,210 >> Un tad man ir nepieciešams m mīnus 1 plus m mīnus 2. 24 00:01:10,210 --> 00:01:13,470 Bet man ir funkcija, kas var dot man tieši šo atbildi, proti, 25 00:01:13,470 --> 00:01:16,340 sigma no m mīnus 1. 26 00:01:16,340 --> 00:01:19,670 >> Tagad, aicinot sevi šādā veidā nav šķist labākā ideja. 27 00:01:19,670 --> 00:01:22,610 Jo, ja sigma aicina sigma kas prasa sigma kas aicina Sigma, jūs 28 00:01:22,610 --> 00:01:24,480 Varētu domāt, ka šis process varētu kādreiz beigties. 29 00:01:24,480 --> 00:01:27,720 Bet tas ir iemesls, kāpēc mums bija ts bāzes gadījumā augšpusē šo funkciju. 30 00:01:27,720 --> 00:01:31,540 Ja nosacījums, kas pārbauda, ​​vai m ir mazāks vai vienāds ar 0 Es netaisos 31 00:01:31,540 --> 00:01:32,610 , lai izsauktu sevi. 32 00:01:32,610 --> 00:01:37,010 Es esmu nevis gatavojas atgriezties 0, kas savukārt tiks pievienots 33 00:01:37,010 --> 00:01:39,950 iepriekšējie skaitļi, kas es esmu apkopojot augšu, tādējādi pārtraucot šo 34 00:01:39,950 --> 00:01:41,740 citādi bezgalīgs process. 35 00:01:41,740 --> 00:01:43,710 >> Pieņemsim tagad redzēt, ja šī jaunā īstenošanas darbi. 36 00:01:43,710 --> 00:01:46,510 Pieņemsim, saglabāt, apkopot un palaist šo programmu. 37 00:01:46,510 --> 00:01:50,640 Padarīt Sigma 1 punkts slash Sigma 1. 38 00:01:50,640 --> 00:01:52,900 Un pieņemsim sniegt tai pašus skaitļus kā agrāk. 39 00:01:52,900 --> 00:01:55,520 2, kas, cerams, man 3. 40 00:01:55,520 --> 00:01:58,970 Let 'nodrošināt to ar 3, kas būtu cerams man 6. 41 00:01:58,970 --> 00:02:03,480 Un pieņemsim, visbeidzot sniedz tai 50, kas tiešām dod man 1275. 42 00:02:03,480 --> 00:02:06,130