La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.

Presentaciones similares


Presentación del tema: "Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso."— Transcripción de la presentación:

1 Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso en las matemáticas

2 Algunos ejemplos conocidos: Números naturales: 1 es un número natural el siguiente de un número natural es un número natural La función factorial, n! 0! = 1 si n > 0 entonces n! = n * ( n - 1 )! Recursión

3 Factorial de n, es igual al producto de n factores desde 1 hasta n. factorial n = n * factorial (n – 1) static int factorialNumero (int n) { int result; if (n == 0) { return 1; } result = n * factorialNumero (n - 1); return result; } Llamada recursiva Recursión

4 class Factorial { public static void main (String arg[]) { int x; System.out.println("A qué número desea calcularle el factorial "); x = CTeclado.ReadInt(); System.out.println(factorialNumero (x)); } static int factorialNumero (int n) { int result; if (n == 0) { return 1; } result = n * factorialNumero (n - 1); return result; } Recursión

5 Veamos un ejemplo, calculando el factorial de 3, utilizando el método fact. static int factorialNumero (int n) { int result; if (n = = 1) { return 1; } result = n * factorialNumero (n - 1); return result; } factorialNumero (3) result = 3 * factorialNumero (2) return result factorialNumero (2) = result = 2 * factorialNumero (1) return result factorialNumero (1)= return 1 result = 2 * 1 = 2 return 2 result = 3 * 2 = 6 return 6 return 1 Recursión

6 static int factorialNumero (int n) { if (n == 0) return 1; return ( n * factorialNumero (n - 1)); } Otra manera de plantear este método recursivo. Calculemos el factorial de 3 utilizando el método fact factorialNumero (3) factorialNumero (3) = return 3 * facorialNumero (2) factorialNumero (2) = return 2 * factorialNumero (1) factorialNumero (1) = return 1 fact (2) = 2 * 1 = 2fact (3) = 3 * 2 = 6 Recursión

7 Si un método se llama así mismo dentro de su definición, se dice que es directamente recursivo. Si un método m contiene una invocación a otro método n, que a su vez contiene una invocación a m, se dice que m es indirectamente recursivo. Un método recursivo debe disponer de una o varias instrucciones selectivas donde establecer la condición o condiciones de salida. Al escribir métodos recursivos se debe tener una sentencia if para obligar al método a volver sin que la llamada recursiva sea ejecutada. Recursión

8 Otro ejemplo clásico es la serie de fibonacci fibonacci (n) = fibonacci (n – 1) + fibonacci (n – 2) fibonacci (0) = 0 fibonacci (1) = 1 Ejemplo: fibonacci (3) = fibonacci (2) + fibonacci (1) fibonacci (3) = fibonacci (1) + fibonacci (0) + 1 fibonacci (3) = 1 + 0 + 1 = 2 Recursión

9 static int fiboSerie (int n) { if (n == 0) return 0; else if (n == 1) return 1; else return (fiboSerie (n - 1) + fiboSerie (n - 2)); } Llamada recursiva Método de fibonacci: Recursión

10 Ejercicio: Hacer un método recursivo que reciba un entero N como parámetro e imprima los número de uno en uno, desde N hasta 0. static void mostrarSerie (int n) { if (n == 0) System.out.print (n + " "); else { System.out.print (n + " "); mostrarSerie (n - 1); } Recursión

11 Ejercicio: Hacer un método recursivo que reciba un entero N como parámetro e imprima los número de uno en uno, desde 0 hasta N. static void mostrarSerie (int n) { if (n == 0) System.out.print (n + " "); else { mostrarSerie (n - 1); System.out.print (n + " "); } Recursión

12 Hacer un programa que dado un número N, genere el siguiente histograma. Utilizar métodos recursivos. Recursión

13 Recursión


Descargar ppt "Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso."

Presentaciones similares


Anuncios Google