Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA: RECURSIVIDAD
RECURSIVIDAD:
La recursividad es una tcnica de programacin muy utilizada
como alternativa a un proceso iterativo.
Es muy til en problemas en que la solucin utilizando una
estructura iterativa es compleja y a veces irresoluble, en
muchos casos simplifica el cdigo.
La recursin en una funcin consiste en que en el cuerpo de
sentencias de la misma se invoca a la propia funcin para
resolver una versin ms pequea del problema original.
Habr un caso (o varios) tan simple que pueda resolverse
directamente sin necesidad de hacer otra llamada recursiva, y
otros en que las llamadas prcticamente se convertirn en
infinitas.
Para que un problema sea recursivo debe incluir tres
elementos.
1)
2)
3)
ALGORITMOS Y PROGRAMACIN
TEMA: RECURSIVIDAD
2)
4)
5)
ALGORITMOS Y PROGRAMACIN
TEMA: RECURSIVIDAD
Aplicaciones:
1)
Solucin:
Sabemos que ! =
Se obtiene:
Caso Base:
Si n<2 entonces fac=1
Caso General: n>=2 entones fac(n)=fac(n-1)*n
Cdigo en Python: Pruebe para n=6 qu obtiene?
# -*- coding:cp1252-*def factorial(n):
if (n<2):
return 1
else:
return factorial(n-1)*n
# Invocacin
num=int(input("Ingrese nmero entero:..."))
print "El factorial para", num, "es:",factorial(num)
ALGORITMOS Y PROGRAMACIN
TEMA: RECURSIVIDAD
2)
Solucin:
Como sabemos en la serie de fibonacci los primeros dos
trminos son los iniciales, y a partir del tercero se forman de la
suma de los dos anteriores, es decir:
=
=
= + = + =
= + = + =
. . .
= +
Se obtiene:
Caso Base:
Si n<2 entonces fib =1
Caso General : Si n>2 entonces fib(n)=fac(n-1)+fib(n-2)
Cdigo en Python: pruebe para n= 5?
# -*- coding:cp1252-*def fibonacci(n):
if (n<2):
return 1
else:
return fibonacci(n-1)+ fibonacci(n-2)
ALGORITMOS Y PROGRAMACIN
TEMA: RECURSIVIDAD
3)
Solucin:
En este caso se parte de la potencia ms baja:
=
=
=
=
Se obtiene:
Caso Base : Si b=0 potencia =1
Caso General : Si b>0 potencia(a,b)=potencia(a,b-1)*a
Cdigo Python: Pruebe para a=5 y b=3 qu obtiene ?
# -*- coding:cp1252-*def potencia(a,b):
if (b==0):
return 1
else:
return potencia(a,b-1)*a
ALGORITMOS Y PROGRAMACIN
TEMA: RECURSIVIDAD
4)
Solucin:
Caso Base : Si n=1 imprime 1
Caso General : Si n>1
naturales(n-1)
imprime n
ALGORITMOS Y PROGRAMACIN
TEMA: RECURSIVIDAD
ALGORITMOS Y PROGRAMACIN
TEMA: RECURSIVIDAD