MyLeoNes™

Recursión: resolver un problema con versiones más pequeñas de sí mismo — Tecnología, 14–17 años

La recursión permite que un programa repita una idea llamándose a sí mismo con un caso más pequeño. También debe saber cuándo parar, o el proceso nunca termina.

Una copia más pequeña del mismo problema

Imagina abrir cajas encajadas: dentro de cada una hay otra más pequeña, hasta llegar a la última, que está vacía. Un programa recursivo hace algo parecido, resolviendo una versión más pequeña de la tarea. Necesita un caso base con respuesta directa.

¿Por qué usar la recursión?

Algunos problemas ya tienen una forma ramificada o anidada: las carpetas contienen carpetas, las páginas enlazan con otras páginas y los árboles familiares se dividen en ramas. La recursión encaja con esa forma y puede ser más clara que una larga lista de casos especiales.

Ejemplo resuelto: factorial

Para calcular 4!, define 1! como 1 y usa n! = n × (n−1)!. Así, 4! se convierte en 4 × 3!, después en 4 × 3 × 2!, y luego en 4 × 3 × 2 × 1!, que da 24. El caso base 1! detiene la cadena.

El punto de parada que falta

Un error común es escribir la llamada a sí mismo y olvidar el caso base, o cambiar tan poco el valor que nunca llega a él. Es comprensible, porque el paso repetido parece ser la idea principal. El resultado suele ser un desbordamiento de pila: demasiadas llamadas sin terminar.

Dónde aparece

Los exploradores de archivos pueden buscar en carpetas dentro de carpetas, y los programas de dibujo pueden crear formas ramificadas como árboles o copos de nieve. Estas tareas tienen una estructura anidada, por lo que la recursión las describe bien. No siempre es la más rápida; un método iterativo puede usar menos memoria.

Sigue explorando

Otros idiomas

Cargando MyLeoNes™…