1 00:00:00,000 --> 00:00:03,110 >> INTERLOCUTEUR 1: Dans cette dernière version de sigma, j'ai mis en place ce que j'appellerais 2 00:00:03,110 --> 00:00:06,570 une solution itérative, où j'ai utilisé un boucle avant de compter tous les 3 00:00:06,570 --> 00:00:09,720 des nombres compris entre 1 et m, par la suite, retournant la somme. 4 00:00:09,720 --> 00:00:12,560 >> Mais il s'avère que nous pouvons utiliser une autre technique pour mettre en œuvre la même 5 00:00:12,560 --> 00:00:15,120 fonction, une technique connu sous la récursion. 6 00:00:15,120 --> 00:00:19,360 Une fonction récursive, pour ainsi dire, est tout simplement celui qui se dit. 7 00:00:19,360 --> 00:00:21,290 Maintenant, en soi, que pourrait être un problème. 8 00:00:21,290 --> 00:00:24,500 Si une fonction elle-même qui appelle simplement appelle lui-même qui se dit, 9 00:00:24,500 --> 00:00:26,080 ce processus pourrait bot jamais finir. 10 00:00:26,080 --> 00:00:30,490 Mais tant que nous incluons un soi-disant scénario de base, une condition qui assure 11 00:00:30,490 --> 00:00:34,930 que, dans certaines situations, nous n'appelons pas nous-mêmes, ce processus de contraire 12 00:00:34,930 --> 00:00:37,070 boucle infinie doit cesser. 13 00:00:37,070 --> 00:00:39,180 >> Voyons maintenant réimplémentons sigma comme suit. 14 00:00:39,180 --> 00:00:43,810 Si n est inférieur ou égal à 0, je suis tout simplement, et quelque peu arbitraire, 15 00:00:43,810 --> 00:00:45,670 va retourner 0. 16 00:00:45,670 --> 00:00:49,370 Sinon ce que je vais faire est en fait calculer sigma pour l'int positif 17 00:00:49,370 --> 00:00:50,460 que j'ai été remis. 18 00:00:50,460 --> 00:00:52,050 >> Maintenant, ce qui est sigma de m? 19 00:00:52,050 --> 00:00:55,480 Eh bien, sigma de m est, bien sûr, la somme de 1 m à travers. 20 00:00:55,480 --> 00:00:58,820 Mais si nous pensons à ce sujet dans l'autre sens, c'est tout simplement la somme de m plus m 21 00:00:58,820 --> 00:01:02,560 moins 1 m, plus, moins 2, et ainsi de suite, tout le chemin vers le bas à 1. 22 00:01:02,560 --> 00:01:08,080 Donc, dans ce sens, il semble que Je ne pouvais tout simplement retourner m plus. 23 00:01:08,080 --> 00:01:10,210 >> Et puis je dois m moins 1 m + moins 2. 24 00:01:10,210 --> 00:01:13,470 Mais j'ai une fonction qui peut donner moi précisément cette réponse, à savoir 25 00:01:13,470 --> 00:01:16,340 sigma de m moins 1. 26 00:01:16,340 --> 00:01:19,670 >> Maintenant, me demandant de cette façon ne sembler la meilleure idée. 27 00:01:19,670 --> 00:01:22,610 Parce que si sigma appelle sigma qui appelle sigma sigma qui appelle, vous 28 00:01:22,610 --> 00:01:24,480 pourrait penser que ce processus pourraient jamais finir. 29 00:01:24,480 --> 00:01:27,720 Mais c'est pour cela que nous avons eu de la base dite cas en haut de cette fonction. 30 00:01:27,720 --> 00:01:31,540 Si la condition qui vérifie si m est inférieure ou égale à 0, je ne vais pas 31 00:01:31,540 --> 00:01:32,610 m'appeler. 32 00:01:32,610 --> 00:01:37,010 Je place va retourner 0, ce qui à son tour, va être ajouté à la 33 00:01:37,010 --> 00:01:39,950 numéros précédents que j'ai été additionnant vers le haut, ce qui arrête ce 34 00:01:39,950 --> 00:01:41,740 processus sinon infinie. 35 00:01:41,740 --> 00:01:43,710 >> Voyons maintenant si cette nouvelle mise en œuvre fonctionne. 36 00:01:43,710 --> 00:01:46,510 Sauvons, compiler, et exécuter ce programme. 37 00:01:46,510 --> 00:01:50,640 Faire sigma 1 point slash sigma 1. 38 00:01:50,640 --> 00:01:52,900 Et nous allons lui fournir les mêmes numéros que avant. 39 00:01:52,900 --> 00:01:55,520 2, qui devrait, espérons donner moi 3. 40 00:01:55,520 --> 00:01:58,970 Donnons avec 3, qui devrait, espérons me donner 6. 41 00:01:58,970 --> 00:02:03,480 Et nous allons enfin fournir avec 50, ce qui me donne en effet 1275. 42 00:02:03,480 --> 00:02:06,130