1 00:00:00,000 --> 00:00:03,110 >> SPEAKER 1: În ultima versiune a sigma, am pus în aplicare ceea ce aș numi 2 00:00:03,110 --> 00:00:06,570 o soluție iterativ, în care am folosit-o buclă înainte de a conta tot a 3 00:00:06,570 --> 00:00:09,720 numere între 1 și m, ulterior, returnarea sumei. 4 00:00:09,720 --> 00:00:12,560 >> Dar se pare că putem folosi un alt tehnica de a pune în aplicare aceeași 5 00:00:12,560 --> 00:00:15,120 funcție, o tehnică cunoscut sub numele de recursie. 6 00:00:15,120 --> 00:00:19,360 O funcție recursive, ca să spunem așa, este pur și simplu unul care se numește. 7 00:00:19,360 --> 00:00:21,290 Acum, în sine, că ar putea fi o problemă. 8 00:00:21,290 --> 00:00:24,500 Dacă o funcție pur și simplu se autointitulează care se numește ceea ce se numește, 9 00:00:24,500 --> 00:00:26,080 acest proces s-ar putea sfârși vreodată bot. 10 00:00:26,080 --> 00:00:30,490 Dar, atâta timp cât vom include un așa-numit caz de bază, o condiție care asigură 11 00:00:30,490 --> 00:00:34,930 că în unele situații nu ne numim noi înșine, că procesul de altfel 12 00:00:34,930 --> 00:00:37,070 looping infinit ar trebui să înceteze. 13 00:00:37,070 --> 00:00:39,180 >> Să acum reimplementat sigma cum urmează. 14 00:00:39,180 --> 00:00:43,810 Dacă n este mai mic sau egal cu 0, sunt pur și simplu, și oarecum arbitrar, 15 00:00:43,810 --> 00:00:45,670 O să se întoarcă 0. 16 00:00:45,670 --> 00:00:49,370 Altfel ce am de gând să faceți este de fapt calcula sigma pentru int pozitiv 17 00:00:49,370 --> 00:00:50,460 că am fost predat. 18 00:00:50,460 --> 00:00:52,050 >> Acum, ceea ce este sigma de m? 19 00:00:52,050 --> 00:00:55,480 Ei bine, sigma de m este, desigur, suma de 1 până prin m. 20 00:00:55,480 --> 00:00:58,820 Dar, dacă ne gândim la asta în altă parte, este pur și simplu suma de m plus m 21 00:00:58,820 --> 00:01:02,560 minus 1 m plus minus 2 și așa mai departe, tot drumul până la 1. 22 00:01:02,560 --> 00:01:08,080 Deci, în acest sens, se pare că Aș putea reveni pur și simplu m plus. 23 00:01:08,080 --> 00:01:10,210 >> Și apoi am nevoie de m minus 1 m plus minus 2. 24 00:01:10,210 --> 00:01:13,470 Dar am o funcție care poate da mi exact acest răspuns, și anume 25 00:01:13,470 --> 00:01:16,340 sigma de m minus 1. 26 00:01:16,340 --> 00:01:19,670 >> Acum, de asteptare mine în acest fel nu se pare ca cea mai buna idee. 27 00:01:19,670 --> 00:01:22,610 Pentru că dacă sigma cere sigma care se solicită sigma care se solicită sigma, te 28 00:01:22,610 --> 00:01:24,480 ar putea crede că acest proces s-ar putea să nu se încheie niciodată. 29 00:01:24,480 --> 00:01:27,720 Dar de aceea am avut așa-numita bază caz în partea de sus a acestei funcții. 30 00:01:27,720 --> 00:01:31,540 În cazul în care condițiile în care verifică dacă m este mai mică sau egală cu 0 eu nu am de gând 31 00:01:31,540 --> 00:01:32,610 să mă sune. 32 00:01:32,610 --> 00:01:37,010 Am loc de gând să se întoarcă 0, care la rândul său, va fi adăugat la 33 00:01:37,010 --> 00:01:39,950 numerele anterioare pe care le-am însumând în sus, oprindu-se astfel acest 34 00:01:39,950 --> 00:01:41,740 proces altfel infinit. 35 00:01:41,740 --> 00:01:43,710 >> Să vedem acum dacă acest nou Lucrări de punere în aplicare. 36 00:01:43,710 --> 00:01:46,510 Să salvăm, compila, și rula acest program. 37 00:01:46,510 --> 00:01:50,640 Face Sigma 1 punct slash sigma 1. 38 00:01:50,640 --> 00:01:52,900 Și să-i furnizeze aceleași numere ca înainte. 39 00:01:52,900 --> 00:01:55,520 2, care ar trebui să sperăm, da-mi 3. 40 00:01:55,520 --> 00:01:58,970 Să-l ofere cu 3, care trebuie să sperăm, da-mi 6. 41 00:01:58,970 --> 00:02:03,480 Și, în cele din urmă să-i furnizeze 50, ceea ce într-adevăr îmi dă 1.275. 42 00:02:03,480 --> 00:02:06,130