Está en la página 1de 5

Definicin de Recursividad

La recursividad es un concepto fundamental en matemticas y en


computacin; pues es una alternativa diferente para implementar estructuras de
repeticin (ciclos). Los mdulos se hacen llamadas recursivas.
Se puede usar en toda situacin en la cual la solucin pueda ser expresada
como una secuencia de movimientos, pasos o transformaciones gobernadas por
un conjunto de reglas no ambiguas.
En programacin, un mtodo usual de simplificacin de un problema complejo
es la divisin de este en sub-problemas del mismo tipo. Esta tcnica
de programacin se conoce como divide y vencers y es el ncleo en el diseo
de numerosos algoritmos de gran importancia, as como tambin es parte
fundamental de la programacin dinmica.
El ejemplo del clculo recursivo factorial de un nmero llevado al campo de
la programacin, en este ejemplo C++:





El seguimiento de la recursividad programada es casi exactamente igual al
ejemplo antes dado, para intentar ayudar a que se entienda mejor se ha
acompaado con muchas explicaciones y con colores que diferencian los
distintos sub-procesos de la recursividad.

int factorial(int x)
{
if (x > -1 && x < 2) return 1; // Cuando -1 < x < 2 devolvemos 1 puesto que 0! = 1 y 1!
= 1
else if (x < 0) return 0; // Error no existe factorial de nmeros negativos
return x * factorial(x - 1); // Si x >= 2 devolvemos el producto de x por el factorial
de x - 1
}










Creacin de las funciones: factorial de un nmero mediante la recursividad en
CLIPS
La recursividad en CLIPS es una forma de resolver problemas. Si se analiza un
problema, y se descubre que se puede resolver por partes en las que se vuelve a
plantear el problema original pero de forma ms "reducida", entonces se puede
resolver por recursin.
El ejemplo tpico es la funcin factorial:
El factorial de 6 se representa: 6! y es igual a 6 x 5 x 4 x3 x 2 x 1. Por lo tanto 6! =
720.
Si nos fijamos un poco podemos ver que el factorial de 5 es igual a 5 x 4 x 3 x 2 x
1. Por lo tanto el factorial de 6 es igual a 6 x el factorial de 5. Y el factorial de 5 es
igual a 5 x el factorial de 4, etctera.
Por convenio en matemticas el factorial de 0 es igual a 1.
X = 3 //Queremos 3!, por lo tanto X inicial es 3
X >= 2 -> return 3*factorial(2);
X = 2 //Ahora estamos solicitando el factorial de 2
X >= 2 -> return 2*factorial(1);
X = 1 // Ahora estamos solicitando el factorial de 1
X < 2 -> return 1;
[En este punto tenemos el factorial de 1 por lo que volvemos marcha atrs
resolviendo todos los resultados]
return 2 [es decir: return 2*1 = return 2*factorial(1)]
return 6 [es decir: return 3*2 = return 3*factorial(2)*factorial(1)] // El resultado devuelto es 6

Vemos que podemos usar la funcin factorial al intentar calcular el factorial de
un nmero.
Funcin factorial recursiva:




Explicacin de la funcin:
El factorial de un nmero n es:
1. Si n = 0 entonces el factorial es 1.
2. Si n no es 0, entonces el factorial es n x factorial(n-1).
Avisos:
La funcin (1- n) devuelve el nmero n menos 1.
Existe la funcin (1+ n) que devuelve el nmero n ms 1.







(defun factorial (n)
(if (zerop n) 1
(* n (factorial (1- n)))
)
)
La sucesin de Fibonacci
La sucesin de Fibonacci es la sucesin de nmeros:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765,
10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, ...
Cada nmero se calcula sumando los dos anteriores a l.
El 2 se calcula sumando (1+1)
Anlogamente, el 3 es slo (1+2),
Y el 5 es (2+3),
y sigue!
Ejemplo: el siguiente nmero en la sucesin de arriba sera (21+34) = 55
Aqu tienes una lista ms larga:
La regla
La sucesin de Fibonacci se puede escribir como una "regla" (lee sucesiones y
series):
La regla es xn = xn-1 + xn-2
Dnde:
xn es el trmino en posicin "n"
xn-1 es el trmino anterior (n-1)
xn-2 es el anterior a ese (n-2)
Por ejemplo el sexto trmino se calculara as:
x6 = x6-1 + x6-2 = x5 + x4 = 5 + 3 = 8

La sucesin fue descrita por Fibonacci como la solucin a un problema de la cra
de conejos: Cierto hombre tena una pareja de conejos juntos en un lugar
cerrado y uno desea saber cuntos son creados a partir de este par en un ao
cuando en su naturaleza parir otro par en un simple mes, y en el segundo mes los
nacidos parir tambin.
Numero de mes
Explicacin de la
genealoga
Parejas de conejos
totales
Comienzo del mes 1
Nace una pareja de
conejos (pareja A).
1 pareja en total
Fin del mes 1
La pareja A tiene un mes
de edad. Se cruza la
pareja A.
1+0=1 pareja en total
Fin del mes 2
La pareja A da luz a la
pareja B. Se vuelve a cruzar
la pareja A.
1+1=2 parejas en total
Fin del mes 3
La pareja A, da a luz a la
pareja C. La pareja B
cumple un 1 mes. Se
cruzan las parejas A y B.
2+1=3 parejas en total
Fin del mes 4
Las parejas A y B dan a luz
a D y E. La pareja C
cumple 1 mes. Se cruzan
las parejas A, B y C.
3+2=5 parejas en total
Fin del mes 5
A, B y C dan a luz F, G y H.
D y E cumplen 1 mes. Se
cruzan A, B, C, D y E
5+3=8 parejas en total
Fin del mes 6
A, B, C, D y E dan a luz a I,
J, K, L y M; F, G y H cumplen
1 mes. Se cruzan A, B, C, D,
E, F, G y H.
8+5=13 parejas en total

También podría gustarte