Исходный код разработки алгоритма Python: https://github.com/MakerChen66/Python3Algorithm
Заявление об авторских правах: Оригинальность непроста, эта статья запрещает плагиат, перепечатку, нарушение должно быть расследовано!
1. Ханойская башня
Ханойские башни: простой классический алгоритм с интересным рекурсивным решением.
Ханойская башня (также известная как Ханойская башня) — развивающая игрушка, возникшая из древней индийской легенды. Когда Брахма сотворил мир, он сделал три алмазных столба, на одном из которых были уложены 64 золотых диска в порядке их размера снизу вверх. Брахма приказал брамину переставить диски на другом столбе по размеру снизу. И оговорено, что диск нельзя увеличить на маленьком диске, а перемещать между тремя столбами можно только один диск за раз. Итак, как это сделать с Python?
Давайте представим, что мы хотим переместить самый большой диск в крайний правый столбец. Нам нужно сначала переместить другие диски, кроме самого большого, на среднюю стойку. Таким образом, проблема заключается в том, как переместить диски N-1 на среднюю стойку. Затем мы подумали о рекурсивном методе.
Переместите N дисков с левого стержня на правый стержень:
- Рекурсивно переместите N-1 дисков из левого столбца в средний столбец.
- Переместите самый большой диск из левого столбца в правый столбец
- Рекурсивно переместите N-1 дисков из среднего столбца в правый столбец.
Реализация алгоритма 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)
Выходной результат:
2. Загрузка исходного кода
Загрузка исходного кода разработки алгоритма Python:
- Ссылка для скачивания с GitHub: Портал
- Ссылка на исходный текст: Читать исходный текст
3. Информация об авторе
Автор: Рыболовная газета Сяохуна. Цель: сделать программирование более интересным!
Оригинальная общедоступная учетная запись WeChat: « Технология Xiaohong Xingkong », посвященная алгоритмам, поисковым роботам, веб-сайтам, разработке игр, анализу данных, обработке естественного языка, искусственному интеллекту и т. д., с нетерпением жду вашего внимания, давайте расти и кодировать вместе!
Примечание об авторских правах: в этой статье запрещен плагиат и перепечатка, нарушение должно быть расследовано!