Diseño de algoritmos Python - Torre de Hanoi

Código fuente del diseño del algoritmo de Python: https://github.com/MakerChen66/Python3Algorithm

Declaración de derechos de autor: la originalidad no es fácil, este artículo prohíbe el plagio, la reimpresión y la infracción debe investigarse.

1. Torre de Hanói

Towers of Hanoi: Algoritmo simple y clásico con una interesante solución recursiva.
inserte la descripción de la imagen aquí
La Torre de Hanoi (también conocida como la Torre de Hanoi) es un juguete educativo que se originó a partir de una antigua leyenda india. Cuando Brahma creó el mundo, hizo tres pilares de diamantes. En un pilar, se apilaron 64 discos de oro en orden de tamaño de abajo hacia arriba. Brahma le ordenó a Brahmin que reorganizara los discos en otro pilar en orden de tamaño desde abajo. Y se estipula que el disco no se puede agrandar en el disco pequeño, y solo se puede mover un disco entre los tres pilares a la vez. Entonces, ¿cómo hacerlo con Python?

Imaginemos si queremos mover el disco más grande a la columna más a la derecha. Necesitamos mover los otros discos excepto el disco más grande al pilar del medio primero. Entonces, el problema es cómo mover los discos N-1 al pilar central. Entonces pensamos en el método recursivo.

Mueva N discos de la clavija izquierda a la clavija derecha:

  • Mueva recursivamente los discos N-1 de la columna izquierda a la columna central
  • Mueva el disco más grande de la columna de la izquierda a la columna de la derecha
  • Mueva recursivamente los discos N-1 de la columna del medio a la columna de la derecha

Implementación del algoritmo de Python:

def hanoi(height, left='left', right='right', middle='middle'):
    if height:
        hanoi(height - 1, left, middle, right)
        print(left, '=>', right)
        hanoi(height - 1, middle, right, left)

hanoi(3)

Resultado de salida:
inserte la descripción de la imagen aquí

2. Descarga del código fuente

Descarga del código fuente del diseño del algoritmo de Python:

3. Información del autor

Autor: Xiaohong's Fishing Daily, Objetivo: ¡Hacer la programación más interesante!

Cuenta pública original de WeChat: " Tecnología Xiaohong Xingkong ", centrada en algoritmos, rastreadores, sitios web, desarrollo de juegos, análisis de datos, procesamiento de lenguaje natural, IA, etc. Esperamos su atención, ¡crezcamos y codifiquemos juntos!

Nota de derechos de autor: ¡Este artículo prohíbe el plagio y la reimpresión, y la infracción debe investigarse!

Supongo que te gusta

Origin blog.csdn.net/qq_44000141/article/details/121664596
Recomendado
Clasificación