Búscalo aquí:

Torres de Hanoi en Prolog [código]


El problema de las torres de hanoi es juego matemático inventado en 1883 por el matemático francés Éduard Lucas. En esta entrada comparto el código recursivo escrito en Prolog para resolver el problema de las torres de hanoi para N discos.


Este problema consiste en 3 varillas verticales y n discos que determinarán la complejidad de la solución. No hay dos discos iguales, están colocados de mayor a menor en la primera varilla ascendentemente, y no se puede colocar ningún disco mayor sobre uno menor a él en ningún momento. El problema consiste en pasar todos los discos a la última varilla colocados de mayor a menor ascendentemente.

El código en prolog que soluciona recursivamente el problema de las torres de hanoi es el siguiente:

  1. hanoi(0,_,_,_).
  2. hanoi(N,Origen,Auxiliar,Destino):- N1 is N-1,
  3. hanoi(N1,Origen,Destino,Auxiliar),
  4. def_pasos(Origen,Destino),
  5. hanoi(N1,Auxiliar,Origen,Destino).
  6. def_pasos(Origen,Destino):-
  7. write(' desde '),
  8. write(Origen),
  9. write(' hasta '),
  10. write(Destino),
  11. write('\n').

Donde N es el número de discos (mayor o igual que 3), Origen indica el nombre de la varilla inicial (por ejemplo var1), Auxiliar es el nombre de la varilla intermedia (por ejemplo var2) y Destino es el nombre de la 3º varilla (por ejemplo var3). Se debe crear un procedimiento principal que haga el llamado respectivo a la funcion hanoi().
-->

Espero les sea de utilidad, saludos.


Quieres leer más post como éste???...suscribete aquí!!!



5 comentarios:

  1. Muy bueno esto de las torres de hanoi en prolog, es un problema recursivo que tiene muchas aplicaciones, gracias por compartir el codigo :D

    ResponderEliminar
  2. si pudieras explicar mas el código serias perfecto

    ResponderEliminar
  3. que tipo de consultas tendria que hacerle al codigo para resolver

    ResponderEliminar
  4. como hago ese llamado a la funcion hanoi ayuda!

    ResponderEliminar
  5. si pudieras extender mas la explicacion del codigo seria perfecto...

    ResponderEliminar

Bienvenido a jcGeorge's Blog!!!

Por favor deja tu comentario, consulta o sugerencia, procura mantener habilitado tu perfil de Blogger o deja un enlace a tu blog o web.

Gracias por leer este blog!!!

Related Posts Plugin for WordPress, Blogger...