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 Так што ў гэтым сэнсе, здаецца, што Я мог проста вярнуцца M Plus. 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, якая сапраўды дае мне 1275. 42 00:02:03,480 --> 00:02:06,130