Want to make interactive content? It’s easy in Genially!

Over 30 million people build interactive content in Genially.

Check out what others have designed:

Transcript

Ivan Meza Chalche

rEcursividaden phyton

START

IiImportancia: La recursividad en progrmación permite crear métodos y funciones capaces de enumerar cualquier tipo de estructura, por compleja que esta pudiera ser. Imagina que tienes que crear una función que recorra todo un sistema de archivos, con carpetas y subcarpetas.

Recursividad

Forma de comprobar que una función (por ejemplo) no volverá a llamarse a si misma.

¿Que es la Recursividad?

+INFO

La recursividad es un concepto que se indica cuando un método se llama a si mismo. Cuando creamos un método recursivo debemos tener en cuenta que este tiene que terminar por lo que dentro del método debemos asegurarnos de que no se está llamando a si mismo todo el rato, Lo que quiere decir que el ciclo es finito.

De hecho es una forma más lenta de hacerlo y ocupa más memoria. Esto no es preocupante en la realidad, pero conviene saberlo.

Ventajas
Ventajas

Ventajas yDesventajas

desventajas

resolver ciertos problemas de manera elegante y eficiente.

Tipos de recursividad

Recursión directa: Cuando el código F tiene una sentencia que involucra a F. Recursión indirecta o cruzada: Cuando la función F involucra una función G que invoca a la vez una función H, y así sucesivamente, hasta que se involucra la función F. Por ejemplo el algoritmo de Par o impar. Recursión simple:- Aquella en cuya función solo aparece una llamada recursiva. Se puede transformar con facilidad en algoritmos iterativos. Recursión múltiple: Se da cuando hay más de una llamada a sí misma dentro del cuerpo de la función, resultando más difícil de transformar a iterativa. Por ejemplo el algoritmo de Fibonacci. Recursión anidada: En algunos de los parámetros de la llamada recursiva, hay una nueva llamada a sí misma.

Otro ejemplo muy usado para ilustrar las posibilidades de la recursividad, es calcular la serie de fibonacci. Dicha serie calcula el elemento n sumando los dos anteriores n-1 + n-2. Se asume que los dos primeros elementos son 0 y 1.

Ejemplos en phyton

+INFO

+INFO

+INFO

Uno de los ejemplos mas usados para entender la recursividad, es el cálculo del factorial de un número n!. El factorial de un número n se define como la multiplicación de todos sus números predecesores hasta llegar a uno. Por lo tanto 5!, leído como cinco factorial, sería 5*4*3*2*1.

Conclusiones

En resumen, la recursividad en Python es una técnica poderosa que permite que una función se llame a sí misma para resolver problemas de manera elegante y eficiente. Puede clasificarse en diferentes tipos y se utiliza en una amplia gama de aplicaciones, desde cálculos simples hasta algoritmos complejos. Sin embargo, es esencial diseñar funciones recursivas cuidadosamente, estableciendo condiciones de parada adecuadas para evitar bucles infinitos. La recursividad es una herramienta valiosa que todo programador debe comprender y saber aplicar en su arsenal de soluciones.

Fuentes:https://www.tokioschool.com/noticias/recursividad-programacion-java/https://www.netmentor.es/entrada/Recursividad-programacionhttps://ellibrodepython.com/recursividad

def fibonacci_recursivo(n): if n == 0: return 0 elif n == 1: return 1 else: return fibonacci_recursivo(n-1) + fibonacci_recursivo(n-2)

def factorial_normal(n): r = 1 i = 2 while i <= n: r *= i i += 1 return r factorial_normal(5) # 120

def factorial_normal(n): r = 1 i = 2 while i <= n: r *= i i += 1 return r factorial_normal(5) # 120

cuando llamamos a la primera función, ésta se llama a sí misma pero pasándole un número menos y así sucesivamente hasta llegar a la última (la que recibe un 1 y por lo tanto deja de hacer más llamadas). En el momento en el que alguna de ellas empieza a devolver valores "hacia atrás", regresa la llamada a cada una de ellas, los valores devueltos se van multiplicando por el parámetro original en cada una de ellas, hasta llegar arriba del todo en el que la primera llamada devuelve el valor buscado.

Proceso de la recursividad