Ханойские башни

Один диск за раз.
Целая стратегия в уме.

Перенесите башню с левого стержня на правый. Большой диск нельзя класть на маленький. Нажмите сначала на стержень-источник, затем на стержень-цель.

0 ходов

Выберите стержень, с которого взять верхний диск.

Как возникает решение?

Ниже — план для четырёх дисков. Твоя игровая доска остаётся как есть.

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

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

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

    Для одного диска нужен 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 — самый большой.
  2. Почему быстрее нельзя

    Обозначим 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.

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

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

    Дисков 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.

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

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

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

Легенда в инструкции к игре 1883 года — перевод в архиве William & Mary ↗

Полный разбор, подсказки и ещё одна задача →