Ханойская башня
Головоломка с дисками и легенда о конце света: почему на 64 диска уйдут сотни миллиардов лет
Есть три стержня и стопка дисков разного размера, надетых на один из них от большего к меньшему. Нужно перенести всю стопку на другой стержень, перекладывая по одному диску и никогда не кладя больший на меньший. Минимальное число ходов для n дисков — 2ⁿ − 1. Головоломку придумал французский математик Эдуар Люка в 1883 году вместе с легендой: когда монахи перенесут 64 золотых диска, наступит конец света. По формуле им понадобится около 585 миллиардов лет.
Правила

Есть три стержня. На один из них надета башня — стопка дисков разного размера, самый большой внизу, самый маленький вверху. Нужно перенести всю башню на другой стержень. Правила всего два[1]:
- За ход можно переложить только один диск — верхний.
- Нельзя класть больший диск на меньший.
Сколько ходов нужно
Минимальное число ходов для n дисков — 2ⁿ − 1:
| Дисков | Ходов |
|---|---|
| 3 | 7 |
| 4 | 15 |
| 5 | 31 |
| 8 | 255 |
| 10 | 1023 |
| 64 | 18 446 744 073 709 551 615 |
Каждый новый диск удваивает работу и добавляет ещё один ход.
Как решать: рекурсия
Решение красиво описывается через само себя. Чтобы перенести башню из n дисков со стержня А на стержень В:
- Перенесите верхние n − 1 дисков на свободный стержень Б (это та же задача, только меньше).
- Переложите самый большой диск на В.
- Перенесите n − 1 дисков с Б на В.
Отсюда и формула: если для n − 1 дисков нужно T ходов, то для n — это T + 1 + T. Начиная с одного диска (1 ход), получаем 3, 7, 15, 31… — то есть 2ⁿ − 1.
Как решать без размышлений
Есть и простое циклическое правило. Пронумеруем стержни 1, 2, 3 (башня на первом). Ходы делают попарно между стержнями в постоянном порядке, каждый раз перекладывая меньший из двух верхних дисков:
- при чётном числе дисков: 1–2, 1–3, 2–3, и снова по кругу;
- при нечётном числе дисков: 1–3, 1–2, 3–2, и снова по кругу.
В паре стержней ход всегда один: меньший верхний диск перекладывается на другой стержень (или на пустой). Башня окажется на третьем стержне ровно за 2ⁿ − 1 ходов — мы проверили это правило перебором для 2–6 дисков.
Покрасьте диски через один в два цвета. Тогда при правильном решении два диска одного цвета никогда не окажутся друг на друге, а один и тот же диск никогда не двигается два хода подряд[2].
Начните с трёх дисков: 7 ходов легко сделать и проверить. Потом попробуйте четыре — и почувствуете, как работает рекурсия.
Легенда о конце света
Головоломку придумал французский математик Эдуар Люка в 1883 году[2]; её называют ещё «башней Брахмы». Её продавали как игрушку якобы от «профессора Клауса» — имя было анаграммой фамилии Люка. К игрушке прилагалась легенда: в храме города Бенарес монахи перекладывают 64 золотых диска между алмазными стержнями. Когда они закончат, башня и храм рассыплются в прах и наступит конец света.
Для 64 дисков нужно 18 446 744 073 709 551 615 ходов. Даже если перекладывать по диску в секунду днём и ночью, на это уйдёт почти 585 миллиардов лет — в десятки раз больше нынешнего возраста Вселенной.
Ещё одна головоломка с математикой внутри — пятнашки.
Частые вопросы
Сколько ходов нужно, чтобы собрать Ханойскую башню?
Для n дисков — минимум 2ⁿ − 1 ходов: 3 диска — 7 ходов, 4 — 15, 5 — 31, 8 — 255.
Сколько времени уйдёт на 64 диска?
Нужно 18 446 744 073 709 551 615 ходов. Если делать один ход в секунду без перерывов, на это уйдёт почти 585 миллиардов лет.
Почему её любят программисты?
Это классический пример рекурсии: чтобы перенести n дисков, нужно перенести n − 1 дисков, потом самый большой, потом снова n − 1. На ней учат писать рекурсивные функции.
Источники
- Ханойская башня, Википедия. ru.wikipedia.org
- E. W. Weisstein. Tower of Hanoi, MathWorld — A Wolfram Web Resource. mathworld.wolfram.com
Обсуждение
Комментариев пока нет — начните обсуждение первым.
Чтобы написать комментарий или ответить, войдите на сайт: