Ханойская башня

Ханойская башня — классическая математическая головоломка. Три стержня, стопка дисков разного размера и два строгих правила: перекладывайте по одному диску и никогда не кладите больший диск на меньший.

Башня из цветных дисков на левом стержне доски Ханойской башни с тремя стержнями
Башня из цветных дисков на левом стержне доски Ханойской башни с тремя стержнями

Три стержня и конус из дисков

На доске три стержня. Все диски разного размера и надеваются на стержни. В начале весь набор находится на одном стержне, упорядоченный по размеру: самый большой внизу, самый маленький наверху, так что стопка образует конус. Цель — перенести всю башню на другой стержень.

Деревянная головоломка «Ханойская башня» с дисками на трёх стержнях
Деревянная головоломка «Ханойская башня». Фото: PranavAmbhore, CC BY-SA 3.0

Три правила

1. Перекладывайте только один диск за раз. 2. Ход — это взять верхний диск из стопки и положить его на другую стопку или на пустой стержень. 3. Больший диск никогда не может лежать на меньшем. Эти три правила и есть вся игра. При них каждое допустимое положение — это способ распределить диски по стержням так, чтобы на каждом стержне сохранялся порядок.

Кратчайшее решение — 2ⁿ − 1

Наименьшее число ходов, решающее башню из n дисков, равно 2ⁿ − 1. Один диск требует 1 хода. Два диска — 3. Три — 7, четыре — 15, пять — 31. Каждый новый диск удваивает предыдущее решение и добавляет один ход, переносящий самый большой диск: если n − 1 дискам нужно T ходов, то n дискам нужно 2T + 1. Это рекуррентное соотношение даёт ровно 2ⁿ − 1. Восемь дисков, самая высокая башня в приложении PictorX, требуют 255 ходов. Более короткого допустимого пути нет.

Как работает рекурсия

Чтобы перенести n дисков с начального стержня на целевой, используя оставшийся стержень как вспомогательный: 1. Перенесите верхние n − 1 дисков с начального стержня на вспомогательный. 2. Перенесите самый большой диск с начального стержня прямо на целевой. 3. Перенесите n − 1 дисков со вспомогательного стержня на целевой, поверх самого большого диска. Шаг 2 допустим, потому что самый большой диск может лежать на любом стержне. Шаги 1 и 3 — та же головоломка, на один диск меньше. Рекурсия заканчивается на одном диске, который перекладывается один раз. Если её развернуть, получатся 2ⁿ − 1 ходов, и ни один шаг не кладёт больший диск на меньший.

Гигантская уличная «Ханойская башня» в Domaine de Chanteloup
Гигантская «Ханойская башня» в Domaine de Chanteloup. Фото: Als33120, CC BY-SA 4.0

Легенда о 64 золотых дисках

Французский математик Эдуард Люка представил головоломку в 1883 году. Вместе с ней он рассказал легенду об индийском храме в Каши Вишванатхе, где жрецы по тем же правилам перекладывают стопку из 64 золотых дисков. Когда будет сделан последний ход, гласит легенда, наступит конец света. Шестьдесят четыре диска требуют 2⁶⁴ − 1 ходов: 18 446 744 073 709 551 615. При одном безошибочном ходе в секунду, днём и ночью, это около 585 миллиардов лет. Жрецы не закончат.

Портрет математика Эдуара Люка
Эдуар Люка (1842–1891), представивший головоломку в 1883 году. Общественное достояние

Играйте в PictorX

Откройте «Ханойскую башню» — на начальном стержне уже стоит башня из четырёх дисков. Минимум — пятнадцать ходов. Перетащите верхний диск на другой стержень или щёлкните стержень, а затем нужный. Клавиши 1, 2 и 3 делают то же самое. Больший диск на меньшем не допускается. «Диски» меняются от 1 до 8, так что можно сверить 1, 3, 7, 15, 31, 63, 127 и 255 с формулой. «Шаг» проигрывает один ход кратчайшего решения. «Решить» проигрывает остальное. «Смотреть 3 диска» показывает рекурсивную стратегию в движении. «Отменить» и «Повторить» проводят по вашим ходам. Сохраните PNG или откройте доску в редакторе PictorX.

Часто задаваемые вопросы

Каковы правила Ханойской башни?

Перекладывайте по одному диску. Возьмите верхний диск со стержня и положите его на другой стержень. Никогда не кладите больший диск на меньший. Вся башня начинает на одном стержне и должна оказаться на другом.

Сколько ходов занимает кратчайшее решение?

2ⁿ − 1. Один диск — 1 ход, два диска — 3, три — 7, четыре — 15, пять — 31. Каждый добавленный диск удваивает предыдущее решение и добавляет один ход.

Кто придумал Ханойскую башню?

Французский математик Эдуард Люка представил её в 1883 году. История о жрецах и 64 золотых дисках в Каши Вишванатхе — легенда, которую он связал с головоломкой.

Сколько времени заняли бы 64 диска?

2⁶⁴ − 1 ходов, то есть 18 446 744 073 709 551 615. При одном ходе в секунду это около 585 миллиардов лет.

Готовы попробовать?

Откройте PictorX в своем браузере — установка не требуется, для запуска не требуется кредитная карта.

Играть в Ханойскую башню