Saltar a contenido

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:

  1. Caso Base: La condición de parada. Es el momento en que la función deja de llamarse a sí misma.
  2. 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:

  1. Define la función cuenta_regresiva(n).
  2. Caso Base: Si n es igual a 0, retorna la lista con el número [0].
  3. Caso Recursivo: Retorna una lista que contenga el número actual [n] más el resultado de llamar a cuenta_regresiva(n - 1).
  4. Llama a la función con el número 5 y guarda el resultado en una variable llamada resultado.

# Programa tu lógica recursiva: