[SOLUCIONADO] Ejercicio de Python: Torres Hanoi

  • 3 Respuestas
  • 304 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado NLD

  • *
  • Underc0der
  • Mensajes: 27
  • Actividad:
    10%
  • Country: 00
  • Reputación -1
    • Ver Perfil

[SOLUCIONADO] Ejercicio de Python: Torres Hanoi

  • en: Diciembre 28, 2019, 03:34:13 pm
Buenas a todos, he estado intentado resolver este ejercicio pero me tiene intrigado.

Código: Python
  1. def mover (n,origen,destino,auxiliar):
  2.     if n>0:
  3.         mover(n-1, origen, auxiliar, destino)
  4.         desitno.append(origen.pop())
  5.         mover(n-1,auxiliar,destino,origen)
  6.  
Bueno basicamente es un ejercicio donde n es un disco, y origen, destino, auxiliar es por donde pasa el disco, entonces quiero contar los numeros de movimientos que hace el disco.
Si teneis alguna sugerencia lo agredecería.
« Última modificación: Diciembre 29, 2019, 06:05:46 am por NLD »

Conectado DtxdF

  • *
  • Moderator
  • Mensajes: 562
  • Actividad:
    100%
  • Reputación 14
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email

Re:Ejercicio de Python

  • en: Diciembre 28, 2019, 06:08:56 pm
@Solo los usuarios pueden ver los links. Registrate o Ingresar

No muestra mucha información. Puede dejar información como la excepción (Si la muestra), el código completo, etc.
Los seres humanos son robots, cuyo combustible es el afanado dinero.

Marked as best answer by xne7esx en Diciembre 29, 2019, 05:49:30 am

Desconectado NLD

  • *
  • Underc0der
  • Mensajes: 27
  • Actividad:
    10%
  • Country: 00
  • Reputación -1
    • Ver Perfil

Re:Ejercicio de Python

  • en: Diciembre 29, 2019, 02:56:20 am
@Solo los usuarios pueden ver los links. Registrate o Ingresar

Supuestamente borre el post o eso creo.  De todas formas lo resolví ayer, aqui te dejo un ejemplo.

Basicamente son las torres Hanoi, cada disco debe pasar de un palo a otro, solo hay tres tipos de palo.
El disco mas grande que en este caso sería el nº que escoges, no puede estar encima de los mas pequeños, y así de forma descendente.
Esto significa que. si tenemos 3 torres. y escogemos por ejemplo el numero 3, quedaría algo como asi.

(0)    _|_              |                |
      __|__             |                |
    ___|___           |                |
  ____|____  ____|____  ____|____

(1.1)  |                |                 |
      __|__            |                 |
    ___|___         _|_               |
  ____|____  ____|____  ____|____ (A -> B)

(1.2)  |                 |                |
         |                 |                |
    ___|___         _|_           __|__
  ____|____  ____|____  ____|____ (A -> C)

(1.3)  |                 |                 |
         |                 |               _|_
    ___|___           |             __|__
  ____|____  ____|____  ____|____ (B -> C)



(2.1)  |                |                 |
         |                 |              _|_
         |           ___|___        __|__
  ____|____  ____|____  ____|____ (A -> B)



(3.1)  |                 |                |
         |                 |                |
       _|_          ___|___       __|__
  ____|____  ____|____  ____|____ (C -> A)

(3.2)  |                 |                |
         |             __|__             |
       _|_          ___|___           |
  ____|____  ____|____  ____|____ (C -> B)

(3.3)  |               _|_              |
         |             __|__             |
         |           ___|___            |
  ____|____  ____|____  ____|____ (A -> B)
     



Python -V 3.8.0
Código: Python
  1. def palito(n, origen, destino, auxiliar):
  2.     if (n==1):
  3.         print('El disco 1 a palito {} a palito {}.'.format(origen, auxiliar))
  4.         return
  5.  
  6.     palito(n - 1, origen, auxiliar, destino)
  7.     print('El disco {} a palito {} a palito {}.'.format(n, origen, auxiliar))
  8.     palito(n - 1, destino, origen, auxiliar)
  9.  
  10.  
  11. n = int(input('Enter number of n: '))
  12. palito(n, 'A', 'B', 'C')
  13.  
  14. # Disco 1 = Disco pequeño.
  15.  
  16.  
« Última modificación: Diciembre 29, 2019, 03:10:52 am por NLD »

Desconectado NLD

  • *
  • Underc0der
  • Mensajes: 27
  • Actividad:
    10%
  • Country: 00
  • Reputación -1
    • Ver Perfil

Re:[SOLUCIONADO] Ejercicio de Python

  • en: Diciembre 29, 2019, 06:05:29 am
Volví a leer el ejercicio y pedían contar el numero de movimientos, a si que he puesto el codigo para las torres Hanoi contando los movimientos totales y los saltos que hace.

Python -V 3.8.0

Código: Python
  1. def palito(n, origen, destino, auxiliar):
  2.     count = 0
  3.     if n==1:
  4.         count += 1
  5.         print('El disco 1 a palito {} a palito {}.'.format(origen, auxiliar))
  6.     else:
  7.         count += palito(n - 1, origen, auxiliar, destino)
  8.         count += palito(1, origen, destino, auxiliar)
  9.         count += palito(n - 1, destino, origen, auxiliar)
  10.     print('El disco {} a palito {} a palito {}.'.format(n, origen, auxiliar))
  11.     return count
  12.  
  13. n = int(input('Enter number of n: '))
  14. print(palito(n, 'A', 'B', 'C'))
  15. # Disco 1 = Disco pequeño.
  16.  
« Última modificación: Diciembre 29, 2019, 06:11:24 am por NLD »

 

[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 24541
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 11328
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 10119
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 14305
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 13614
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon