La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Recursividad.

Presentaciones similares


Presentación del tema: "Recursividad."— Transcripción de la presentación:

1 Recursividad

2 RECURSIVIDAD Se dice que una función es recursiva cuando se llama a si misma. No todas la funciones pueden llamarse a si mismas, deben estar diseñadas especialmente para que sean recursivas, de otro modo podrían conducir a bucles infinitos, o a que el programa termine inadecuadamente.

3 RECURSIVIDAD Cuando se llama a una función, se crea un nuevo juego de variables locales, de este modo, si la función hace una llamada a si misma, se guardan sus variables y parámetros. La nueva instancia de la función trabajará con su propia copia de las variables locales, cuando esta segunda instancia de la función retorna, recupera las variables y los parámetros anteriores y continúa la ejecución en el punto en que había sido llamada.

4 PASO BASE La serie de pasos recursivos debe ser finita, terminando con un paso base.   Es decir, a cada paso recursivo se le reduce el número de pasos que hay que dar para terminar, llegando un momento en el que no se verifica la condición de paso a la recursividad.   NOTA: Toda función recursiva se puede resolver de forma Iterativa y viceversa

5 FACTORIAL Función recursiva para calcular el factorial de un número entero. El factorial se simboliza como n!, se lee como "n factorial", y la definición es: n! = n * (n-1) * (n-2) * ... * 1 No se puede calcular el factorial de números negativos, y el factorial de cero es 1, de modo que una función bien hecha para cálculo de factoriales debería incluir un control para esos casos:

6 long int factorial (int n) {
if (n < 0) return 0; else if (n > 1) return n*factorial(n-1); return 1; }

7 Paso a paso: factorial(4)
1a Instancia n=4 Si n > 1 salida ← 4 * factorial(3) (Guarda el valor de n = 4) 2a Instancia Si n > 1 salida ← 3*factorial(2) (Guarda el valor de n = 3) 3a Instancia Si n > 1 salida ← 2*factorial(1) (Guarda el valor de n = 2) 4a Instancia SI n == 1 → retorna 1 3a Instancia (recupera n=2 ) retorna 1*2=2 2a instancia (recupera n=3 ) retorna 2*3=6 1a instancia (recupera n=4 de la pila) retorna 6*4=24 Valor de retorno → 24

8

9 Fibonacci Leonardo de Pisa (c ), también llamado Fibonacci, fue un matemático italiano, famoso por la invención de la sucesión de Fibonacci, surgida como consecuencia del estudio del crecimiento de las poblaciones de conejos, y por su papel en la popularización del sistema de numeración posicional en base 10 (o decimal) en Europa.

10 Resolver la serie de Fibonacci por recursividad
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55…

11

12 Carl Friedrich Gauss Johann Carl Friedrich Gauss (30 de abril de 1777 – 23 de febrero de 1855), fue un matemático, astrónomo y físico alemán. Transcurridos pocos segundos Gauss levanta la mano y dice tener la solución: los cien primeros números naturales suman Cuando tenía 10 años en la escuela el maestro les manda como penitencia sumar los cien primeros números naturales.

13 Carl Friedrich Gauss ¿Cómo lo hizo Gauss? Mentalmente se dio cuenta de que la suma de dos términos equidistantes era constante: 1 , 2 , 3 , , 98 , 99 , 100 1+100 = 2+99 = 3+98 = 4+97 = ... = 101 Con los 100 números se pueden formar 50 pares, de forma que la solución final viene dada por el producto 101· 50 = 5050

14 Ingresar un número y calcular su sumatoria
Debe sumarse todos los número que le anteceden Probar la sumatoria de Gauss

15


Descargar ppt "Recursividad."

Presentaciones similares


Anuncios Google