Documente Academic
Documente Profesional
Documente Cultură
ndice____________________________________________________________1
Introduccin______________________________________________________2
Desarrollo________________________________________________________3
Conclusin:_______________________________________________________7
Bibliografa:_______________________________________________________8
Introduccin
En el presente trabajo se presenta una investigacin acerca del tema de
recursividad. Qu es?, para qu sirve?, es, y muchas dudas ms se resuelven
en este trabajo.
Veremos tambin los casos en los que se darn, as como en los casos en los que
los que no es conveniente usarlos.
Aqu se explicara eso y ms, as como tambin se mostraran algunos ejemplos,
tanto algortmicos como en la vida diaria, adems de poner ejemplo para la rpida
comprensin.
As mismo, gracias al trabajo de varios autores del libro, se resuelven dos
ejercicios, los cuales estn presentes en el trabajo, que son los ms
representativos de este tema, como lo son las torres de Hani y la secuencia de
Fibonacci, ya que en este tipo de algoritmo s presenta de mayor manera la
recursividad.
Desarrollo
1. Qu es la recursividad?
Capacidad que tiene los mtodos de invocarse a s mismos, esta es una potente
herramienta en la informtica.
Con esta herramienta muchos algoritmos pueden simplificarse significativamente.
2. En qu consiste?
Se utiliza como una alternativa a la repeticin o estructura repetitiva.
El uso de la recursin es particularmente idneo para la solucin de problemas
que pueden definirse de modo natural en trminos recursivos.
3. Ejemplos de recursividad en la vida diaria:
*una fotografa donde se observa otra fotografa
*en los programas de televisin, en los cuales un periodista transfiere el control de
la noticia a otro periodista que se encuentra en otra ciudad, y este a su vez, hace
lo mismo con un tercero. Cuando este ltimo termina su participacin regresa el
control al segundo, y cuando ste tambin finaliza su intervencin regresa el
control al primero.
4. Qu es un objeto recursivo?
Un objeto es recursivo si forma parte de s mismo o interviene en su propia
definicin. El instrumento necesario para expresar los programas recursivamente
es el subprograma. La mayora de los lenguajes de programacin admiten un
procedimiento o funcin que haga referencia a s mismo dentro de su definicin, lo
cual es recursividad directa. Tambin es posible que un procedimiento o funcin
haga referencia otro el cual contenga, a su vez, una referencia directa o indirecta
al primero, esto es recursividad indirecta.
5. Qu es un algoritmo recursivo?
Es un algoritmo que expresa la solucin de un problema en trminos de una
llamada a s mismo.
Cules son sus caractersticas?
Un algoritmo recursivo consta de una parte recursiva, otra iterativa o no recursiva
y una condicin de terminacin. La parte recursiva y la condicin de terminacin
siempre existen. En cambio la parte no recursiva puede coincidir con la condicin
de terminacin. Algo muy importante a tener en cuenta cuando usemos la
recursividad es que es necesario asegurarnos que llega un momento en que no
hacemos ms llamadas recursivas. Si no se cumple esta condicin el programa no
parar nunca.
6. Ventajas y desventajas
Como vemos es muy similar al ejemplo del clculo de la factorial. El obtener una
solucin no debiera ser ningn problema para el lector
int Fibonacci (int n)
{
if (n<2)
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2);
}
El inters en esta funcin no es tanto la dificultad de implementarla sino la
discusin sobre la conveniencia de una implementacin recursiva. Como
indicbamos anteriormente, era importante tener cuidado de no resolver varias
veces el mismo subproblema. En este caso podemos observar que para cada n
hay que calcular F(n-1) y en segundo lugar F(n-2) que ya est incluido en el
primero ya que si n 1 > 1
F(n 1) = F(n 2) + F(n 3)
Por tanto el resultado ser mucho ms ineficiente al estar duplicando trabajo.
Torre de Hani
El problema de las torres de Hani consiste en que inicialmente tenemos un
conjunto de tres torres. La primera de ellas tiene apiladas n fichas de mayor a
menor tamao. El problema es pasar la n fichas de la primera a la tercera torre
teniendo en cuenta que:
1. En cada paso solo se puede mover una ficha.
2. Una ficha de un tamao no puede apilarse sobre otra de menor tamao. La
situacin inicial en el caso de tener 4 fichas se muestra en la figura 4. El problema
consiste en pasar las fichas de la torre 1 a la torre 3 teniendo en cuenta las dos
restricciones anteriores.
Conclusin:
Se puede decir que la recursividad es una tcnica de programacin bastante til y
muy interesante de estudiar. A travs de los ejemplos que el individuo pueda
realizar, a prendera a travs y sencillez de lo que es programar recursivamente e
incluir esta tcnica cuando se le presente un problema como los que fueron
mencionados anteriormente. La asignacin de memoria sea esttica o dinmica,
en realidad se tendr que aplicar en cualquier programa en momento de su
codificacin; tomando en cuenta que cada programador tiene su propio estilo de
programar.
El ejemplo de las torres de Hani, como el de las 8 reinas son problemas claves
que tienen que ver directamente que tienen que v ir con lo que es la recursividad
Bibliografa:
Aho, Alfred, Hopcroft John, Estructura de datos y algoritmos, Addison-Wesley
Iberoamericana
Joyanes Aguilar, Luis. Fundamentos de programacin, McGraw-Hill
Cairo,Guardati, Estructuras de datos, McGraw-Hill