1 00:00:00,000 --> 00:00:03,110 >> ALTAVOZ 1: En la última versión del sigma, he implementado lo que yo llamaría 2 00:00:03,110 --> 00:00:06,570 una solución iterativo, en el que he usado un bucle delantero a contar hasta la totalidad de la 3 00:00:06,570 --> 00:00:09,720 números entre 1 y m, a partir de entonces devolver la suma. 4 00:00:09,720 --> 00:00:12,560 >> Pero resulta que podemos utilizar otro técnica para aplicar esa misma 5 00:00:12,560 --> 00:00:15,120 función, una técnica conocido como recursión. 6 00:00:15,120 --> 00:00:19,360 Una función recursiva, por así decirlo, es simplemente uno que se llama. 7 00:00:19,360 --> 00:00:21,290 Ahora, en y de sí mismo, que puede ser un problema. 8 00:00:21,290 --> 00:00:24,500 Si una función simplemente llama a sí misma la que llama a sí mismo que se llama, 9 00:00:24,500 --> 00:00:26,080 ese proceso podría bot nunca acabar. 10 00:00:26,080 --> 00:00:30,490 Pero siempre y cuando incluimos el llamado a caso base, una condición que asegura 11 00:00:30,490 --> 00:00:34,930 que en algunas situaciones no llamamos nosotros mismos, que de otro modo proceso de 12 00:00:34,930 --> 00:00:37,070 bucle infinito debe cesar. 13 00:00:37,070 --> 00:00:39,180 >> Ahora vamos a volver a implementar Sigma como sigue. 14 00:00:39,180 --> 00:00:43,810 Si n es menor que o igual a 0, estoy simplemente, y un tanto arbitraria, 15 00:00:43,810 --> 00:00:45,670 va a devolver 0. 16 00:00:45,670 --> 00:00:49,370 Else lo que voy a hacer es en realidad calcular Sigma para la int positivo 17 00:00:49,370 --> 00:00:50,460 que me han dado. 18 00:00:50,460 --> 00:00:52,050 >> Ahora, ¿cuál es sigma de m? 19 00:00:52,050 --> 00:00:55,480 Bueno, Sigma de m es, por supuesto, la suma de 1 a través de m. 20 00:00:55,480 --> 00:00:58,820 Pero si nos ponemos a pensar de otra manera, es simplemente la suma de m + d 21 00:00:58,820 --> 00:01:02,560 menos 1 además de M menos 2 y así sucesivamente, hasta el fondo a 1. 22 00:01:02,560 --> 00:01:08,080 Así que en ese sentido, parece que Yo podría simplemente regresar m más. 23 00:01:08,080 --> 00:01:10,210 >> Y entonces necesito m menos 1 más menos 2 m. 24 00:01:10,210 --> 00:01:13,470 Pero tengo una función que puede dar Me precisamente esa respuesta, a saber, 25 00:01:13,470 --> 00:01:16,340 sigma de m menos 1. 26 00:01:16,340 --> 00:01:19,670 >> Ahora, llamar a mí mismo de esta manera no hace parecer la mejor idea. 27 00:01:19,670 --> 00:01:22,610 Porque si sigma sigma llama que llama Sigma que llama Sigma, usted 28 00:01:22,610 --> 00:01:24,480 podría pensar que este proceso podría no terminar nunca. 29 00:01:24,480 --> 00:01:27,720 Pero es por eso que teníamos la base de la llamada caso en la parte superior de esta función. 30 00:01:27,720 --> 00:01:31,540 La condición if que comprueba si m es menor o igual a 0 no me voy 31 00:01:31,540 --> 00:01:32,610 llamar a mí mismo. 32 00:01:32,610 --> 00:01:37,010 Estoy en vez de ir a devolver 0, que a su vez, va a ser añadido a la 33 00:01:37,010 --> 00:01:39,950 números anteriores que he estado sumando hasta, deteniendo de este modo este 34 00:01:39,950 --> 00:01:41,740 proceso de otra manera infinita. 35 00:01:41,740 --> 00:01:43,710 >> Ahora vamos a ver si este nuevo aplicación funciona. 36 00:01:43,710 --> 00:01:46,510 Vamos a guardar, compilar y ejecutar este programa. 37 00:01:46,510 --> 00:01:50,640 Haga sigma 1 punto slash sigma 1. 38 00:01:50,640 --> 00:01:52,900 Y vamos a dotarla de los mismos números que antes. 39 00:01:52,900 --> 00:01:55,520 2, que debe de esperar dame 3. 40 00:01:55,520 --> 00:01:58,970 Vamos a proporcionar con 3, que esperemos que darme 6. 41 00:01:58,970 --> 00:02:03,480 Y seamos finalmente le proporcionaran 50, lo que de hecho me da 1275. 42 00:02:03,480 --> 00:02:06,130