domingo, mayo 11, 2008

Monjes y el Fin del Mundo

TORRES DE HANOI

La leyenda cuenta que dios al crear el mundo, colocó tres varillas de diamantes con 64 discos apilados en la primera. Estos estaban colocados comenzando por el de mayor diámetro y seguido por el inmedianto inferior. Estas 3 varillas estaban ubicadas en un monasterio, en el cuál los monjes que lo habitaban tenían la encomienda divina de traspasar estos 64 discos de la primera varilla a la tercera. El día en que esto sucediese, el mundo acabaría.
Pero para realizar esta tarea había ciertas reglas a seguir: sólo se podía mover un disco por vez, y sólo se podóa colocar un disco sobre otro, siempre y cuando fuese de menor diámetro que el de abajo.

La expresión matemática que nos muestra la menor cantidad de movimientos posibles para resolver el problema es: 2^n - 1

Considerando que n = 64, entonces la cantidad de movimientos es: 18.446.744.073.709.551.615

Suponiendo que los monjes mueven un disco por minuto, entonces les llevaría 2.105.792.702.478.259,32 años. Para redondear, sería aproximadamente dos mil cien billones de años. Podemos suponer que mueven un disco por segundo para hacer mas rápido el proceso, pero igualmente les llevaría quinientos ochenta y cinco mil millones de años.
Como sabemos la tierra tuvo su origen hace 4.570 millones de años, por lo que todavía los monjes tienen trabajo para rato.

Esto no pretende ser una noticia innovadora (valga la redundancia de noticia), las torres de hanoi son un problema viejo y muy conocido, pero aproveché la ocasión para contarla nuevamente y realizar un aporte a los cientos de resoluciones que se han planteado al problema en diferentes lenguajes de programación. Qué aporte estarán pensando, el siguiente:
Esta es la resolución del algoritmo que calcula los movimientos a realizar para resolver el problema en la menor cantidad de pasos posibles. Esta programado en Assembler IBM 370, dada la naturaleza de este lenguaje, esta es uan versión NO recursiva del problema. Aqui les va: Hanoi IBM 370

3 comentarios:

Sebastián dijo...

No me puedo bajar el archivo, podrías subirlo nuevamente,

Saludos Seb@

Seba dijo...

Hola! no lo tengo aca porq no estoy en mi casa, pero si queres podes dejarme tu mail o alguna cuenta donde pueda mandartelo cuando vuelva a mi casa.

saludos.

Solo por curiosidad, para que necesitas el algoritmo en IBM 370?? nadie usa ese lenguaje jejje

Carlos Roberto dijo...

Hola Seb@ yo necesito el programa me lo podrian enviar te paso mi mail zerdacarlosr@gmail.com

Saludos,