Torre de Hanoi
Torre de Hanoi
Torre de Hanoi
El rompecabezas de la Torre de Hanoi fue inventado por el matemático francés Edouard Lucas en
1883. Se inspiró en una leyenda acerca de un templo hindú donde el rompecabezas fue presentado
a los jóvenes sacerdotes. Al principio de los tiempos, a los sacerdotes se les dieron tres postes y
una pila de 64 discos de oro, cada disco un poco más pequeño que el de debajo. Su misión era
transferir los 64 discos de uno de los tres postes a otro, con dos limitaciones importantes. Sólo
podían mover un disco a la vez, y nunca podían colocar un disco más grande encima de uno más
pequeño. Los sacerdotes trabajaban muy eficientemente, día y noche, moviendo un disco cada
segundo. Cuando terminaran su trabajo, dice la leyenda, el templo se desmenuzaría en polvo y el
mundo se desvanecería.
Aunque la leyenda es interesante, usted no tiene que preocuparse de que el final del mundo ocurra
pronto en cualquier momento. El número de movimientos necesarios para mover correctamente una
torre de 64 discos es 264−1=18,446,744,073,709,551,615264−1=18,446,744,073,709,551,615.
A una velocidad de un movimiento por segundo, ¡eso
sería 584,942,417,355584,942,417,355 años! Claramente hay algo más en este rompecabezas
de lo que parece.
La Figura 1 muestra un ejemplo de una configuración de discos en el proceso de movimiento del
primer poste al tercero. Observe que, según especifican las reglas, los discos de cada poste se
apilan de manera que los discos más pequeños estén siempre encima de los discos más grandes.
Si usted no ha intentado resolver este rompecabezas antes, debe probarlo ahora. No necesita
discos y postes elegantes, una pila de libros o trozos de papel servirán.
Siempre y cuando obedezcamos la regla de que los discos más grandes deben permanecer en la
parte inferior de la pila, podemos usar los tres pasos anteriores recursivamente, tratando cualquier
disco más grande como si ni siquiera estuviera allí. Lo único que falta en el esquema anterior es la
identificación de un caso base. El problema de la torre de Hanoi más simple es una torre de un
disco. En ese caso, sólo necesitamos mover un solo disco a su destino final. Una torre de un disco
será nuestro caso base. Además, los pasos descritos anteriormente nos mueven hacia el caso base
reduciendo la altura de la torre en los pasos 1 y 3. El Programa 1 muestra el código en Python para
resolver el rompecabezas de la Torre de Hanoi.
Programa 1