Está en la página 1de 1

RECURSIVIDAD

Una función recursiva es una función que se llama a si misma. Esto es, dentro
del cuerpo de la función se incluyen llamadas a la propia función. Esta estrategia
es una alternativa al uso de bucles. Una solución recursiva es, normalmente,
menos eficiente que una solución basada en bucles. Esto se debe a las
operaciones auxiliares que llevan consigo las llamadas a las funciones. Cuando
un programa llama a una función que llama a otra, la cual llama a otra y así
sucesivamente, las variables y valores de los parámetros de cada llamada a cada
función se guardan en la pila o stack, junto con la dirección de la siguiente línea
de código a ejecutar una vez finalizada la ejecución de la función invocada. Esta
pila va creciendo a medida que se llama a más funciones y decrece cuando cada
función termina. Si una función se llama a si misma recursivamente un número
muy grande de veces existe el riesgo de que se agote la memoria de la pila,
causando la terminación brusca del programa.

Es una técnica de programación que tiene su fundamento en la inducción


matemática.
Para que un problema pueda ser resuelto en forma recursiva, debe poder
expresarse a partir de:
 Un caso base: es un caso para el cual la resolución es inmediata.
 Una regla que se utiliza a si misma (la llamada recursiva): es decir poder
expresar la solución para este caso en base al mismo problema.

El ejemplo típico para explicar recursividad es el cálculo del factorial de un


número (el operador matemático utilizado es "!").
El factorial de un número N es el producto de todos los números enteros desde
1 hasta N.
Ejemplo:
5! = 1 * 2 * 3 * 4 * 5

Entonces, ahí encontramos una manera de expresar la solución en forma


recursiva. Podemos plantear los casos generales para todo N:
Caso base: 0! = 1
Regla recursiva: n! = n * (n-1)!

Esto significa que si quiero calcular el factorial de 5, se debe ir resolviendo los


siguientes pasos:
5! Lo solicitado
5 * 4! al aplicar la regla recursiva
5 * 4 * 3! al aplicar la regla recursiva
5 * 4 * 3 * 2! al aplicar la regla recursiva
5 * 4 * 3 * 2* 1! al aplicar la regla recursiva
5 * 4 * 3 * 2* 1 * 0! al aplicar la regla recursiva
5 * 4 * 3* 2* * 1 * 1 al aplicar el caso base
120 el resultado

De esta manera se ve como la regla recursiva se va aplicando hasta que el caso


base pone fin a las llamadas recursivas.

También podría gustarte