1. REPUBLICA BOLIVARIANA DE VENEZUELA
I.UP. “SANTIAGO MARIÑO”
ESCUELA DE INGENIERIA DE SISTEMAS
MATURIN ESTADO MONAGAS
Autor:
Asesora:
Sánchez Carlos
María Aguilera
C.I.:83.618.386
Maturín Junio de 2012
2. El enigma de las Torres de Hanoi trata de un juego oriental muy antiguo,
sin embargo fue presentado, a nivel mundial, en 1883 por el matemático
francés Edouard Lucas, bajo el seudónimo de N. Lucas de Siam.
La leyenda que acompaña a este juego cuenta que en Benares (ubicado
en la India), durante el reinado del Emperador Fo Hi, existía un templo con
una cúpula que marcaba el centro del mundo. Los monjes del templo
tenían que mover sesenta y cuatro discos sagrados de un emplazamiento
a otro. Pero éstos eran tan frágiles que sólo se podía mover de uno en
uno. Y además, tenían que tener cuidado al colocarlos, puesto que no se
podía emplazar uno más valioso encima de otro de valor inferior.
3. En este caso, el mencionado valor de los aros iba en proporción a su
tamaño, cuanto más pequeño fuera el anillo menor era su valía. Para
realizar los traslados de los referidos discos, solamente se disponía de
otro lugar en el templo (además del de partida y del final) lo
suficientemente sagrado como para que estas anillas pudieran ser
depositadas en él. Así pues, los monjes comienzan el movimiento de éstas
entre el montón inicial, el destino final y la posición intermedia, eso sí,
manteniendo siempre el orden antes comentado (el más grande en el
fondo y el más pequeño en la cima). La leyenda dice que antes de que los
monjes logren reubicar todos los discos en la nueva localización, el templo
volverá a convertirse en polvo y el mundo terminará.
4. El objetivo de este juego es colocar n discos en una barra de manera que el
más grande quede en el fondo y el más pequeño en la cúspide. Para este
fin, el jugador puede servirse la barra inicial o de partida, de la barra final,
donde deben terminar los aros ordenados, y de una intermedia. El propósito
del citado enigma es realizar esta ordenación con el menor número de
movimientos posible. El acertijo con cuatro anillas se conoce como enigma
de Reve.
5. Esquema general:
Divide y Vencerás (p: problema)
Dividir (p, p1, p2, ..., pk)
para i:= 1, 2, ..., k
si:= Resolver (pi)
solución:= Combinar (s1, s2, ..., sk)
Normalmente para resolver los subproblemas se utilizan llamadas recursivas al
mismo algoritmo (aunque no necesariamente).
Ejemplo. Problema de las Torres de Hanoi.
6. Ejemplo: Problema de las Torres de Hanoi. Mover n discos del poste A al
C:
• Mover n-1 discos de A a B
• Mover 1 disco de A a C
• Mover n-1 discos de B a C
7. Hanoi (n, A, B, C: entero)
si n==1 entonces
mover (A, C)
sino
Hanoi (n-1, A, C, B)
mover (A, C)
Hanoi (n-1, B, A, C)
finsi
Si el problema es “pequeño”, entonces se puede resolver de forma directa.
8. Normalmente para resolver los subproblemas se utilizan llamadas
recursivas al mismo algoritmo (aunque no necesariamente).
Esquema recursivo (con división en 2 subproblemas):
divide_venceras (p, q: indice)
var m: indice
si pequeño (p, q)
solucion = solucion_directa (p, q)
en otro caso
m = dividir (p, q);
solucion = combinar (divide_venceras (p, m),
divide_venceras (m+1, q));