Библиотека задач / Алгоритмы

Школьники и взрослые

Ханойские башни: маленькая задача внутри большой

Условие

На левом из трёх стержней лежат 44 диска: большие под маленькими. Нужно перенести всю башню на правый. За ход переносится только верхний диск; большой нельзя класть на маленький. Какое наименьшее число ходов нужно?

Попробовать в интерактиве →

О задаче · Школьники и взрослые
Тема
Алгоритмы
Для кого
Школьники и взрослые
Уровень библиотеки
Следующий шаг · ориентир
Записать идею

Личный черновик для заметок и расчётов. Он никуда не отправляется и не проверяется.

Подсказка 1

Чтобы перенести самый большой диск сразу вправо, остальные три должны оказаться на среднем стержне.

Подсказка 2

После переноса большого диска нужно перенести ту же маленькую башню ещё раз.

Разобрать решение по шагам
01

Сначала план для четырёх дисков

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

Затем переносим большой диск направо, а меньшую башню — со среднего поверх него. Получились три части: маленькая башня → один большой диск → маленькая башня.

Для одного диска нужен 11 ход. Для двух по этому плану: 1+1+1=31+1+1=3. Для трёх: 3+1+3=73+1+3=7. Поэтому четыре диска можно перенести за 7+1+7=157+1+7=15 ходов.

К этому шагу
1. Освобождаем большой диск7 ходов4Старт321СреднийЦель2. Большой диск — на цель1 ходСтарт321Средний4Цель3. Собираем башню на цели7 ходовСтартСредний4321Цель
Состояния после каждой части плана. Цифры на дисках обозначают размер: 1 — самый маленький, 4 — самый большой.
02

Почему быстрее нельзя

Обозначим T(n)T(n) — наименьшее число ходов для переноса башни из nn дисков. Одинаковые стержни можно менять ролями: от выбора начала и цели минимум не зависит. Для одного диска T(1)=1T(1)=1.

Возьмём любой успешный маршрут, даже если в нём самый большой диск двигается несколько раз. Перед его первым ходом стержень-источник и стержень назначения должны быть свободны от меньших дисков. Значит, вся меньшая башня уже перенесена с начала на оставшийся стержень — это не менее T(n−1)T(n-1) ходов.

Сразу после последнего хода большого диска на цель все меньшие снова стоят башней на другом стержне. Теперь их нужно перенести на цель поверх большого — ещё не менее T(n−1)T(n-1) ходов. Между этими двумя частями есть хотя бы один ход большим диском.

Итак, любой маршрут требует не менее 2T(n−1)+12T(n-1)+1 ходов. План из трёх частей ровно столько и тратит. Поэтому T(n)=2T(n−1)+1T(n)=2T(n-1)+1. В частности, для четырёх дисков минимум — 1515.

03

Откуда берётся степень двойки

Посчитаем несколько минимумов по правилу «удвоить предыдущий и прибавить один».

Дисков nnХодов T(n)T(n)Если прибавить 11
111122
223344
337788
4415151616
5531313232

Последний столбец каждый раз удваивается. Это не случайное совпадение: из полученного правила следует T(n)+1=2(T(n−1)+1)T(n)+1=2(T(n-1)+1).

Для одного диска величина T(1)+1T(1)+1 равна 22. До башни из nn дисков остаётся n−1n-1 удвоений, значит T(n)+1=2nT(n)+1=2^n. Убираем добавленную единицу: T(n)=2n−1T(n)=2^n-1.

04

Башня, которую не закончить за жизнь

В легенде, сопровождавшей игру, жрецы переносят башню из 6464 золотых дисков. Это история о головоломке, а не исторический факт.

По нашей формуле требуется 264−12^{64}-1 ходов — примерно 1,8447⋅10191{,}8447\cdot10^{19}. Даже если делать один ход в секунду без остановок, получим около 585585 миллиардов лет. Для оценки делим число ходов на 60⋅60⋅24⋅365,2560\cdot60\cdot24\cdot365{,}25 секунд в году. Добавить один диск легко; перенос башни после этого требует примерно вдвое больше ходов.

Ответ

1515 ходов.

Главная идея

Рекурсия — способ решить задачу через такую же, но меньшего размера.

Как заметить эту идею в другой задаче

Для перемещения самого большого объекта сначала приходится решить ту же задачу меньшего размера. Это признак рекуррентного перехода.

Возможная ошибка

Думать, что самый большой диск обязан двигаться ровно один раз в любом решении. Лишние ходы возможны, но быстрее план из трёх частей они не делают.

Источник и примечания

Источник и редакция

Классическая задача. Формулировка, рисунки и разбор — Popov Academy.

Проверь себя

Каков минимум для 66 дисков?

Ответ к дополнительной задаче

26−1=632^{6} - 1 = 63 хода.

Продолжить тему: Игры и стратегии →
Учебная схема

Popov Academy · Библиотека задач

Ханойские башни: маленькая задача внутри большой

https://popov.academy/library/hanoi-towers/

Условие

На левом из трёх стержней лежат 44 диска: большие под маленькими. Нужно перенести всю башню на правый. За ход переносится только верхний диск; большой нельзя класть на маленький. Какое наименьшее число ходов нужно?

Дополнительная задача

Каков минимум для 66 дисков?