Você está na página 1de 9

Unidad IV

RECURSIVIDAD

Concepto de Recursividad
Es la definicin de un objeto que aparece dentro de la definicin de si mismo, en forma
directa o indirecta, con un desarrollo o ejecucin dentro o hacia dentro de si mismo en
etapas y en forma de espiral; mientras sus parmetros no lleguen a un valor bsico
llamado puerta de escape o valor preestablecido que previene el desarrollo infinito y que
resulta ser el ltimo valor que se deposita en una estructura tipo pila, que a su vez sirve de
punto de partida inversa en la evaluacin retroactiva de encontrar la solucin definitiva del
proceso, coincidiendo con el empleo del primer parmetro almacenado en la pila.

Sinnimo de Recursividad es Recursin, que puede utilizarse indistintamente. Este trmino


no aparece en el diccionario espaol o castellano, apareciendo Recurrencia, que es un
trmino mucho ms amplio, que incluye hasta los procesos iterativos.
El concepto de recursividad es amplio, con muchas variantes y difcil de precisar en forma
lacnica. Aparece abundantemente en la naturaleza y en procesos matemticos.
La recursividad es un concepto poderoso que permite descubrir soluciones fciles a
situaciones de naturaleza complejas.
En todo proceso de solucin recursiva, se presentan la lectura comparativa de valores con
expresiones bsicas preestablecidas que a este nivel son aceptadas incondicionalmente y
la lectura de valores con expresiones de desarrollo que proporcionan resultados a medias,
que son de definitiva las que crean el proceso de ejecucin objetiva hacia dentro de la
misma funcin. El resultado se obtiene hasta que se evala el primer trmino.

Ejemplo de

RECURSIVIDAD: n!
n!=n*(n1)!
(n-1)! = ((n-1) * (n-2)! )
.......
0!=
1
1! =
1

Pil
a
1
2
3

Ej.: Si n = 3, 3! = 3 * 2!
2!
= 2*1!
Pero 1! = 1 ; entonces:
1*2=2
2*3=6.
6 es
Utilizando de
la Pila:
factorial
3.
1*2*3 =

el

Tipos de Recursividad
Indirecta

Directa

RECURSIVIDAD
DIRECTA
Calcular objeto ( )
Proceso A ( )
_____________
_____________ Parmetro sin definir
_____________
LLAMAR A PROCESO A ( )
_______________
_______________ Parmetro sin definir
________________
LLAMAR A PROCESO A ( )
_______________
_______________ Parmetro Definido
________________
FIN PROCESO A ( )
FIN PROCESO A ( )
FIN PROCESO A ( )
IMPRESIN OBJETO

RECURSIVIDAD
INDIRECTA
CALCULAR OBJETO A ( )
PROCESO A ( )
____________
____________
____________

LLAMAR A PROCESO B ( )
____________
____________
____________

OBJETO A SIN DEFINIR


LLAMAR A PROCESO B ( )
____________
____________
____________

OBJETO A DEFINIDO COMO BSICO


FIN PROCESO B ( )
CALCULAR EL OBJETO, HACIA ATRS
____________
____________
____________
OBJETO B DEFINIDO
OBJETO A DEFINIDO
FIN PROCESO A ( )

Ejercicios y Problemas de
Recursividad
Las torres de Hanoi.
Constituye uno de los
ejemplos que no pueden faltar
en el presente tema o unidad.
Procesos de clasificacin de
datos en estructuras lineales,
como enlazadas no lineales.
Bsqueda binaria
Procesos factoriales
Series numricas.
Impresin de un arreglo.
Suma de los datos numricos
de un arreglo.
Algoritmo de Euclides.
Funciones tcnicas de
computacin.

Algoritmo de particin.
Representacin de los
nmeros de cataln.
Coeficientes binomiales.
Juego de las 8 damas.
Posiciones aleatorias del
caballo en ajedrez
Transformacin de lecturas
en rboles binarios.
Escritura de elementos en
arreglos auxiliares PEPS y
UEPS.
Producto de A*B
Suma (N)

Las Torres de Hanoi


Nota: Constituye uno de los ejemplos que no
pueden faltar en el presente tema o unidad.

Implementacin del Juego.


El juego consta de tres torres o
pines que permiten apilar un
conjunto de arandelas, fichas o
tkens.
Las fichas o tkens tienen un
orificio en su parte central, para
alojarse en los pines.
Las fichas son de dimetro
diferentes, simulando en
conjunto, un cono invertido.
Los pines pueden estar alojados
perpendicularmente a una base
o soporte.

Reglas del Juego


Primera: Solamente se
permite un
movimiento a la vez.
Segunda: No se
permite colocar una
arandela de mayor
tamaoAuxiliar
sobre otra.
B
A
GRFICA:
1

2
3

Objetivos del Juego:


Mediante Recursividad,
Crear un programa para calcular el nmero de
movimientos mnimos, con 1, 2, 3, . . y ms tkens.

frmula:
H(n) = (2 - 1) ; donde n
es el numero de arandelas
o fichas.
Veamos: H(3) = 2*2*2 = 8;
8-1 = 7 Bingo!!

Que el programa d una lista de salida, con


la descripcin de esos movimientos mnimos.

Ej: Cuando n = 3. 7
mov.
1.- Pasar el tken 1 a la torre
B.
2.- Pasar el tkens 2 a
Auxiliar.
3 .- Pasar el tken 1 a Auxiliar.
4.- Pasar el tken 3 a torre B.
5.- pasar el tken 1 a torre A.
6.- pasar el tken 2 a torre B.
7.- Pasar el tken 1 a torre B.

Demostracin que permite visualizar la


aplicacin de la recursividad en dos
problemas distintos

Al observar el video, se

rbol binario completo.


Nodos = (2 - 1; n es el

incrementan las fichas y


con la ayuda del mtodo
inductivo , la frmula se
cumple.
En la Diapositiva anterior
se puede : 1- Editar un

numero de niveles.

Las Torres de Hanoi H(n) = (2


puede
que a medida
se
- 1)
n es ver
el nmero
de Fichas.

programa.

2- Compilar el
programa.

3- Ejecutar el

programa.
La salida del programa deber
ser:
1. Nmero mnimo de
movimientos, y
2. La Narracin de esos
movimientos.

Con la ayuda de la solucin


del problema anterior, se
puede construir el Arbol
binario completo.
Nivel 1
O
Nivel 2
O
O
Nivel 3 O O O O
.
. .
. .
..
Nivel Nodos = (2
- 1)

Fin del Resumen

RECURSIVIDAD

Você também pode gostar