2.1 Recursividad

9
2.1 Recursividad El hecho de que una función pueda llamarse a sí misma

description

2.1 Recursividad . El hecho de que una función pueda llamarse a sí misma. Una acción es recursiva cuando se define en función de sí misma. Las estructuras de datos recursivas sirven para construir estructuras dinámicas y complejas tales como las pilas, árboles y grafos. - PowerPoint PPT Presentation

Transcript of 2.1 Recursividad

Page 1: 2.1  Recursividad

2.1 Recursividad

El hecho de que una función pueda llamarse a sí misma

Page 2: 2.1  Recursividad

Una acción es recursiva cuando se define en función de sí misma.

Las estructuras de datos recursivas sirven para construir estructuras dinámicas y complejas tales como las pilas, árboles y grafos.

Page 3: 2.1  Recursividad

Definición: Un algoritmo se dice que es recursivo cuando contiene en su definición una o más llamadas a si mismo.

Todo algoritmo recursivo tendrá al menos una instrucción alternativa que contemplará dos casos bien diferenciados:

Caso directo (o caso base)� : Es el caso en el cual el problema tiene una solución directa. Es el último caso que se ejecuta en la recursión.

Caso recursivo� : Es donde se relaciona el resultado del algoritmo con resultados de casos más simples. Estos casos más simples corresponderán con las llamadas recursivas.

La condición de la instrucción alternativa que selecciona el caso directo se denomina condición de parada.

Page 4: 2.1  Recursividad

Ejemplo: Función factorialfunction factorial ($natural) {

// This guarantees that the function will return 1 (even with 0 as argument) $result = 1; if ($natural > 0) { // Here we're applying the second formula: n * (n - 1)! $result = $natural * factorial(($natural - 1)); } // return the acumulated result return $result;

}Ejecutar Factoriales.class

Page 5: 2.1  Recursividad

El proceso de ejecución de un subprograma recursivo consiste en una cadena de generación de llamadas (suspendiéndose los restantes cálculos) y reanudación de los mismos al término de la ejecución de las llamadas

Page 6: 2.1  Recursividad

El concepto de recursión aparece en varias situaciones de la vida cotidiana, aunque en muchas no sabemos que estamos en presencia de este concepto, por ejemplo, sacar fotocopias de fotocopias, tomar una fotografía a otra fotografía

Un razonamiento recursivo tiene dos partes:• La base. No es recursiva y es el punto tanto de partida como

de terminación de la definición

• La regla recursiva de construcción.

Page 7: 2.1  Recursividad

Entonces:Base: La secuenciación, iteración condicional y selección son estructuras válidas de control que pueden ser consideradas como enunciados.

Regla recursiva: Las estructuras de control que se pueden formar combinando de manera válida la secuenciación iteración condicional y selección también son válidos.

Un conjunto de objetos está definido recursivamente siempre que:

(B) algunos elementos del conjunto se especifican explícitamente(R) el resto de los elementos del conjunto se definen en términos de los elementos ya definidos, donde

(B) se llama base(R) se llama cláusula recursiva

Page 8: 2.1  Recursividad

Observaciones:1. El procedimiento se llama a si mismo2. El problema se resuelve, resolviendo el mismo problema pero de tamaño menor3. La manera en la cual el tamaño del problema disminuye asegura que el caso base eventualmente se alcanzará.

AplicacionesLa recursividad es un método poderoso usado en inteligencia artificial, su poder es que algunos conceptos complejos pueden expresarse en una forma simple.

Las fórmulas recursivas pueden aplicarse a situaciones tales como prueba de teoremas, solución de problemas combinatorios, algunos acertijos, etc.

Page 9: 2.1  Recursividad

Cuando la definición de un subprograma sólo contiene una llamada recursiva, entonces se dice que la recursividad es lineal.

Si es mas de una llamada recursiva, entonces se dice que la recursividad es múltiple.