La Recursividad: El Espejo de la Programación
La recursividad es una técnica donde una función se llama a sí misma para resolver un problema. Es ideal para tareas que pueden dividirse en subtareas idénticas más simples, como recorrer estructuras de árboles o realizar cálculos matemáticos complejos.
1. Los Dos Pilares de la Recursividad
Para que una función recursiva no se ejecute infinitamente (provocando un RecursionError), siempre debe tener dos partes:
- Caso Base: La condición de parada. Es el momento en que la función deja de llamarse a sí misma.
- Caso Recursivo: La parte donde la función se llama a sí misma con un argumento ligeramente modificado, acercándose al caso base.
2. Ejemplo: El Factorial de un Número
El factorial de 5 ($5!$) es $5 \times 4 \times 3 \times 2 \times 1$.
En términos recursivos, $5!$ es lo mismo que $5 \times 4!$. Esta lógica se repite hasta llegar a $1!$, que es nuestro caso base.
Lógica en Python:
Para calcular el factorial, definimos una función que reciba un número n. Si n es 1, devolvemos 1 (caso base). Si no, devolvemos n * factorial(n - 1) (caso recursivo).
3. Consideraciones Importantes
- Límite de Recursión: Python tiene un límite de seguridad (usualmente 1000 llamadas). Si tu problema es demasiado grande, podrías necesitar un enfoque iterativo (usando bucles).
- Consumo de Memoria: Cada llamada recursiva ocupa espacio en la "pila de ejecución" (stack), por lo que debe usarse con sabiduría.
Reto: La Cuenta Regresiva Recursiva
Vamos a crear una función que realice una cuenta regresiva hasta llegar a 0.
Instrucciones:
- Define la función
cuenta_regresiva(n). - Caso Base: Si
nes igual a 0, retorna la lista con el número[0]. - Caso Recursivo: Retorna una lista que contenga el número actual
[n]más el resultado de llamar acuenta_regresiva(n - 1). - Llama a la función con el número
5y guarda el resultado en una variable llamadaresultado.
# Programa tu lógica recursiva: