1 00:00:00,000 --> 00:00:03,110 >> ALTAVEU 1: En l'última versió del sigma, he implementat el que jo anomenaria 2 00:00:03,110 --> 00:00:06,570 una solució iteratiu, en el qual he fet servir un bucle davanter a comptar fins a la totalitat de la 3 00:00:06,570 --> 00:00:09,720 nombres entre 1 i m, a partir de llavors tornar la suma. 4 00:00:09,720 --> 00:00:12,560 >> Però resulta que podem utilitzar un altre tècnica per aplicar aquesta mateixa 5 00:00:12,560 --> 00:00:15,120 funció, una tècnica conegut com recursió. 6 00:00:15,120 --> 00:00:19,360 Una funció recursiva, per dir-ho, és simplement un que es diu. 7 00:00:19,360 --> 00:00:21,290 Ara, en i de si mateix, que pot ser un problema. 8 00:00:21,290 --> 00:00:24,500 Si una funció simplement diu a si mateixa la que diu a si mateix que es diu, 9 00:00:24,500 --> 00:00:26,080 aquest procés podria bot mai acabar. 10 00:00:26,080 --> 00:00:30,490 Però sempre que incloem l'anomenat a cas base, una condició que assegura 11 00:00:30,490 --> 00:00:34,930 que en algunes situacions no anomenem nosaltres mateixos, que d'altra manera procés de 12 00:00:34,930 --> 00:00:37,070 bucle infinit ha de cessar. 13 00:00:37,070 --> 00:00:39,180 >> Ara anem a tornar a implementar Sigma com segueix. 14 00:00:39,180 --> 00:00:43,810 Si n és menor o igual a 0, estic simplement, i una mica arbitrària, 15 00:00:43,810 --> 00:00:45,670 tornarà 0. 16 00:00:45,670 --> 00:00:49,370 Else el que vaig a fer és en realitat calcular Sigma per a la int positiu 17 00:00:49,370 --> 00:00:50,460 que m'han donat. 18 00:00:50,460 --> 00:00:52,050 >> Ara, quin és sigma de m? 19 00:00:52,050 --> 00:00:55,480 Bé, Sigma de m és, per descomptat, la suma d'1 a través de m. 20 00:00:55,480 --> 00:00:58,820 Però si ens posem a pensar d'una altra manera, és simplement la suma de m + d 21 00:00:58,820 --> 00:01:02,560 almenys 1 més de M menys 2 i així successivament, fins al fons a 1. 22 00:01:02,560 --> 00:01:08,080 Així que en aquest sentit, sembla que Jo podria simplement tornar m més. 23 00:01:08,080 --> 00:01:10,210 >> I llavors necessito m menys 1 més menys 2 m. 24 00:01:10,210 --> 00:01:13,470 Però tinc una funció que pot donar Em precisament aquesta resposta, és a dir, 25 00:01:13,470 --> 00:01:16,340 sigma de m almenys 1. 26 00:01:16,340 --> 00:01:19,670 >> Ara, trucar a mi mateix d'aquesta manera no fa sembla la millor idea. 27 00:01:19,670 --> 00:01:22,610 Perquè si sigma sigma diu que crida Sigma que crida Sigma, vostè 28 00:01:22,610 --> 00:01:24,480 podria pensar que aquest procés podria no acabar mai. 29 00:01:24,480 --> 00:01:27,720 Però és per això que teníem la base de l'anomenada cas a la part superior d'aquesta funció. 30 00:01:27,720 --> 00:01:31,540 La condició if que comprova si m és menor o igual a 0 no em vaig 31 00:01:31,540 --> 00:01:32,610 cridar a mi mateix. 32 00:01:32,610 --> 00:01:37,010 Estic en comptes d'anar a tornar 0, que al seu torn, serà afegit a la 33 00:01:37,010 --> 00:01:39,950 números anteriors que he estat sumant fins, detenint d'aquesta manera aquest 34 00:01:39,950 --> 00:01:41,740 procés d'una altra manera infinita. 35 00:01:41,740 --> 00:01:43,710 >> Ara anem a veure si aquest nou aplicació funciona. 36 00:01:43,710 --> 00:01:46,510 Anem a guardar, compilar i executar aquest programa. 37 00:01:46,510 --> 00:01:50,640 Feu sigma 1 punt slash sigma 1. 38 00:01:50,640 --> 00:01:52,900 I anem a dotar-la dels mateixos números que abans. 39 00:01:52,900 --> 00:01:55,520 2, que ha d'esperar dóna'm 3. 40 00:01:55,520 --> 00:01:58,970 Anem a proporcionar amb 3, que esperem que donar-me 6. 41 00:01:58,970 --> 00:02:03,480 I siguem finalment li proporcionaran 50, el que de fet em dóna 1275. 42 00:02:03,480 --> 00:02:06,130