Назад
Задача

  а) Головоломка "Ханойская башня" представляет собой восемь дисков, нанизанных в порядке уменьшения размеров на один из трёх колышков. Требуется переместить всю башню на другой колышек, перенося каждый раз только один диск и не помещая больший диск на меньший. Докажите, что головоломка имеет решение. Какой способ будет оптимальным (по числу перекладываний дисков)?   б) Занумеруем колышки числами 1, 2, 3. Требуется переместить диски с 1-го колышка на 3-й. Сколько понадобится перекладываний, если прямое перемещение диска с 1-го колышка на 3-й и с 3-го на 1-й запрещено (каждое перекладывание должно производиться через 2-й колышек)?   в) Сколько понадобится перекладываний, если в условии пункта а) добавить дополнительное требование: первый (самый маленький) диск нельзя класть на 2-й колышек?

Решение

  а) Пусть минимальное число шагов для перемещения башни из n дисков равно Kn. Выразим Kn+1 через Kn.

  Рассмотрим башню из  n + 1  диска. Разобьём всю процедуру на три этапа.

  Этап 1 – от начала до первого перемещения нижнего диска. В конце этого этапа стоящая на нижнем диске башня из n дисков должна переместиться на один из свободных колышков (колышек, на который следующим шагом должен переместиться нижний диск, должен быть свободен). Нижний диск в этих перемещениях не участвует, следовательно, для этого необходимо (и достаточно) Kn шагов.

  Этап 2 – от первого до последнего перемещения нижнего диска. Одного шага достаточно: после первого перемещения нижний диск можно больше не трогать.

  Этап 3 – после последнего перемещения нижнего диска. В начале этого этапа колышек, с которого перед этим был снят нижний диск, свободен. Значит, на третьем колышке стоит башня из n дисков, и ее надо переместить на нижний диск. Для такого перемещения также нужно Kn шагов.

  Итак,  Kn+1 = Kn + 1 + Kn = 2Kn + 1  (выше показано, что меньшим числом шагов обойтись нельзя, а такого количества достаточно).

  Поскольку  K1 = 1,  мы можем последовательно вычислить K2, K3, ..., K8.

  Нетрудно вывести и общую формулу: записав полученное соотношение в виде   Kn+1 + 1 = 2(Kn + 1),   имеем  Kn + 1 = 2n–1(K1 + 1) = 2n.   Замечание. "Угадав" ответ, можно его доказать по индукции.   б) Рассуждаем аналогично. Заметим, что здесь  K1 = 2.

  Сначала придется переместить башню из n дисков с 1-го колышка на 3-й (Kn шагов). Теперь можно переместить нижний диск на 2-й колышек. Затем придется вернуть остальные диски на 1-й колышек, и тогда можно переложить нижний диск на 3-й колышек. Останется снова переместить остальные диски с 1-го колышка на 3-й. Поэтому в нашей ситуации  Kn+1 = Kn + 1 + Kn + 1 + Kn = 3Kn + 2.

  Записав его в виде  Kn+1 + 1 = 3(Kn + 1),  получим  Kn + 1 = 3n–1(K1 + 1) = 3n.   в) Из-за того, что все башни, содержащие первый диск, приходится собирать на 3-м или 1-м колышках, отличие от рассуждений п. б) только в том, что  K1 = 1.  Поэтому из того же соотношения  Kn + 1 = 3n–1(K1 + 1)  получаем  Kn = 2·3n–1 – 1.

Ответ

а) Самый короткий способ содержит   28 – 1 = 255  перекладываний. б)  38 – 1 = 6560  перекладываний;   в)  2·37 – 1 = 4373  перекладывания.

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

Комментариев нет