Código-fonte do projeto do algoritmo Python: https://github.com/MakerChen66/Python3Algorithm
Declaração de direitos autorais: Originalidade não é fácil, este artigo proíbe plágio, reimpressão, violação deve ser investigada!
1. Torre de Hanói
Towers of Hanoi: Algoritmo simples e clássico com uma solução recursiva interessante.
A Torre de Hanoi (também conhecida como Torre de Hanoi) é um brinquedo educacional que se originou de uma antiga lenda indiana. Quando Brahma criou o mundo, ele fez três pilares de diamante.Em um pilar, 64 discos de ouro foram empilhados em ordem de tamanho de baixo para cima. Brahma ordenou que Brahmin reorganizasse os discos em outro pilar em ordem de tamanho a partir de baixo. E é estipulado que o disco não pode ser ampliado no disco pequeno, e apenas um disco pode ser movido entre os três pilares por vez. Então, como fazer isso com Python?
Vamos imaginar se queremos mover o maior disco para a coluna mais à direita. Precisamos mover os outros discos, exceto o disco maior, para o pilar do meio primeiro. Portanto, o problema é como mover os discos N-1 para o pilar do meio. Então pensamos no método recursivo.
Mova N discos do pino esquerdo para o pino direito:
- Mova recursivamente N-1 discos da coluna da esquerda para a coluna do meio
- Mova o maior disco da coluna da esquerda para a coluna da direita
- Mova recursivamente N-1 discos da coluna do meio para a coluna da direita
Implementação do algoritmo 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 saída:
2. Download do código-fonte
Download do código-fonte do projeto de algoritmo Python:
- Link para download do GitHub: Portal
- Link para o texto original: Leia o texto original
3. Informações do autor
Autor: Xiaohong's Fishing Daily, Objetivo: Tornar a programação mais interessante!
Conta pública original do WeChat: " Xiaohong Xingkong Technology ", com foco em algoritmos, rastreadores, sites, desenvolvimento de jogos, análise de dados, processamento de linguagem natural, IA, etc., aguardando sua atenção, vamos crescer e codificar juntos!
Nota de direitos autorais: este artigo proíbe plágio e reimpressão, e a violação deve ser investigada!