1 00:00:00,000 --> 00:00:03,110 >> GŁOŚNIK 1: W tej ostatniej wersji Sigma, I wdrożone, co nazwałbym 2 00:00:03,110 --> 00:00:06,570 iteracyjny rozwiązanie, w którym użyłem przodu pętli liczyć się wszystkie 3 00:00:06,570 --> 00:00:09,720 numery od 1 do m, następnie zwrotu kwoty. 4 00:00:09,720 --> 00:00:12,560 >> Ale okazuje się, możemy użyć innego Technika do realizacji w tym samym 5 00:00:12,560 --> 00:00:15,120 funkcja, technika znany jako rekursji. 6 00:00:15,120 --> 00:00:19,360 Funkcja rekurencyjna, że ​​tak powiem, jest po prostu taki, który nazywa siebie. 7 00:00:19,360 --> 00:00:21,290 Teraz, sama w sobie, że może być problem. 8 00:00:21,290 --> 00:00:24,500 Jeśli po prostu nazywa się funkcja, która domaga się, które nazywa się, 9 00:00:24,500 --> 00:00:26,080 że proces może bot kiedyś skończy. 10 00:00:26,080 --> 00:00:30,490 Jednakże tak długo, jak długo zawierają tak zwane wariant podstawowy, stan, który zapewnia 11 00:00:30,490 --> 00:00:34,930 że w niektórych sytuacjach nie nazywamy się, że proces inaczej 12 00:00:34,930 --> 00:00:37,070 nieskończonej pętli powinny przestać. 13 00:00:37,070 --> 00:00:39,180 >> Załóżmy teraz reimplement Sigma następująco. 14 00:00:39,180 --> 00:00:43,810 Gdy n jest mniejsze niż lub równe 0, ja po prostu, i nieco arbitralnie, 15 00:00:43,810 --> 00:00:45,670 zamierza powrócić 0. 16 00:00:45,670 --> 00:00:49,370 Innego, co mam zamiar zrobić, to rzeczywiście obliczyć sigma dla pozytywnego int 17 00:00:49,370 --> 00:00:50,460 że byłem przekazał. 18 00:00:50,460 --> 00:00:52,050 >> Teraz, co jest sigma m? 19 00:00:52,050 --> 00:00:55,480 Cóż, sigma m jest, oczywiście, Suma 1 w górę przez m. 20 00:00:55,480 --> 00:00:58,820 Ale jeśli myślimy o nim w inny sposób, jest to po prostu suma m plus m 21 00:00:58,820 --> 00:01:02,560 minus 1 plus minus 2 m i tak dalej, w dół do 1. 22 00:01:02,560 --> 00:01:08,080 Tak więc w tym sensie, że wydaje się, że Może po prostu wrócić M plus. 23 00:01:08,080 --> 00:01:10,210 >> A potem muszę m minus 1 plus minus m 2. 24 00:01:10,210 --> 00:01:13,470 Ale mam funkcji, które mogą dać mnie właśnie to, że odpowiedź, a mianowicie 25 00:01:13,470 --> 00:01:16,340 sigma m minus 1. 26 00:01:16,340 --> 00:01:19,670 >> Teraz, nazywając się w ten sposób nie Wydaje się, że najlepszym pomysłem. 27 00:01:19,670 --> 00:01:22,610 Bo jeśli sigma sigma, które wywołuje nazywa sigma sigma który wzywa, ty 28 00:01:22,610 --> 00:01:24,480 pomyśli, że ten proces może nie zawsze kończy. 29 00:01:24,480 --> 00:01:27,720 Ale dlatego mieliśmy tak zwaną bazę przypadku w górnej części tej funkcji. 30 00:01:27,720 --> 00:01:31,540 Jeśli warunek, który sprawdza, czy m jest mniejsza lub równa 0, nie zamierzam 31 00:01:31,540 --> 00:01:32,610 nazywać siebie. 32 00:01:32,610 --> 00:01:37,010 Mam zamiar wrócić zamiast 0, która z kolei ma być dodany do 33 00:01:37,010 --> 00:01:39,950 poprzednie numery, że byłem podsumowujące w górę, zatrzymując w ten sposób to 34 00:01:39,950 --> 00:01:41,740 inaczej nieskończony proces. 35 00:01:41,740 --> 00:01:43,710 >> Zobaczmy teraz, czy ta nowa Realizacja robót. 36 00:01:43,710 --> 00:01:46,510 Ratujmy, kompilacji i uruchomić ten program. 37 00:01:46,510 --> 00:01:50,640 Dodać 1 kropka slash sigma sigma 1. 38 00:01:50,640 --> 00:01:52,900 I niech przekazuje jej same numery, jak wcześniej. 39 00:01:52,900 --> 00:01:55,520 2, który powinien dać mi 3 z nadzieją. 40 00:01:55,520 --> 00:01:58,970 Miejmy zapewnić mu 3, które powinien dać mi 6 z nadzieją. 41 00:01:58,970 --> 00:02:03,480 I niech w końcu zapewnić mu 50, które rzeczywiście daje mi 1275. 42 00:02:03,480 --> 00:02:06,130