Гипермаркет знаний>>Информатика >>Информатика 6 класс>> Ханойская башня, или один замечательный алгоритм
§ 4.12. Ханойская башня, или один замечательный алгоритм
Одна из древних легенд гласит: «В непроходимых джунглях недалеко от города Ханоя есть храм бога Брамы. В нем находится бронзовая плита с тремя алмазными стержнями. На один из стержней бог при сотворении мира нанизал 64 диска разных диаметров из чистого золота. Наибольший диск лежит на бронзовой плите, а остальные образуют пирамиду, сужающуюся кверху. Это башня Брамы. Работая день и ночь, жрецы храма переносят диски с одного стержня на другой, следуя законам Брамы:
1) диски можно перемещать с одного стержня на другой только по одному; 2) нельзя класть больший диск на меньший; 3) нельзя откладывать диски в сторону, при переносе дисков с одного стержня на другой можно использовать промежуточный третий стержень, на котором диски должны находиться тоже только в виде пирамиды, сужающейся кверху.
Когда все 64 диска будут перенесены с одного стержня на другой, наступит конец света».
Эта древняя легенда положена в основу задачи о Ханойской башне: переместить п дисков со стержня 1 на стержень 3, используя промежуточный стержень 2 и соблюдая законы Брамы. карт
Если башня состоит из одного диска, то она переносится за один ход: 1->3.
Башня из двух дисков переносится за три хода: 1—>2, 1—>3, 2—>3.
Для переноса башни из трех дисков потребуется уже семь ходов: 1->3, 1->2, 3->2, 1->3, 2->1, 2->3, 1->3. Обратите внимание, за первые три хода мы переносим башню из двух верхних дисков на второй промежуточный стержень. Затем переносим самый большой диск с первого стержня на третий и еще раз проделываем хорошо знакомую нам операцию: переносим башню из двух дисков на третий диск.
Следовательно, чтобы перенести башню из четырех дисков с первого стержня на третий, необходимо действовать по плану:
1) перенести башню из трех верхних дисков с первого стержня на второй (7 ходов); 2) самый большой диск перенести с первого стержня на третий (1 ход); 3) перенести башню из трех дисков со второго стержня на третий (7 ходов).
Всего на перенос потребуется 15 ходов.
Рассуждая аналогичным образом, сосчитаем число ходов, необходимых для переноса башни из пяти дисков:
15 + 1 + 15 = 2 • 15 + 1 = 31.
Для башни из 6 дисков получаем: 2 • 31 + 1 = 63 и т. д.
Рассмотренный нами алгоритм решения задачи «Ханойская башня» обладает одним удивительным свойством: в ходе его выполнения для башни, состоящей из n колец, мы используем алгоритм для чуть более простой ситуации — переноса башни, состоящей из n - 1 кольца. В свою очередь, в алгоритме для башни из n - 1 кольца используется этот же алгоритм для n - 2 колец и т. д.
Прием, когда некоторый процесс описывается через самого себя, называется рекурсией. Алгоритм решения задачи «Ханойская башня» — пример рекурсивного алгоритма.
Вопросы и задания
1. Проведите необходимые вычисления и заполните следующую таблицу:
табл
Число дисков Число ходов
7 8 9 10 20 1 048 575 21 30 1 073 741 823 31 39 40 1 099 511 627 775
2. Назовите числа: 1048 575,1073 741823,1 099 511627 775. Что это за числа?
3. Для того чтобы переместить башню из 64 дисков, при безошибочной работе потребуется 18 446 744 073 709 551 615 перекладываний. Сколько уйдет на это времени, если считать, что на одно перекладывание уходит одна секунда? Для выполнения вычислений используйте приложение Калькулятор.
Босова Л. Л. Информатика: Учебник для 6 класса / Л. Л. Босова. — 3-е изд., испр. и доп. — М.: БИНОМ. Лаборатория знаний, 2005. — 208 с.: ил.
Содержание урока
конспект урока
опорный каркас
презентация урока
акселеративные методы
интерактивные технологии
Практика
задачи и упражнения
самопроверка
практикумы, тренинги, кейсы, квесты
домашние задания
дискуссионные вопросы
риторические вопросы от учеников
Иллюстрации
аудио-, видеоклипы и мультимедиа
фотографии, картинки
графики, таблицы, схемы
юмор, анекдоты, приколы, комиксы
притчи, поговорки, кроссворды, цитаты
Дополнения
рефераты
статьи
фишки для любознательных
шпаргалки
учебники основные и дополнительные
словарь терминов
прочие
Совершенствование учебников и уроков
исправление ошибок в учебнике
обновление фрагмента в учебнике
элементы новаторства на уроке
замена устаревших знаний новыми
Только для учителей
идеальные уроки
календарный план на год
методические рекомендации
программы
обсуждения
Интегрированные уроки
Если у вас есть исправления или предложения к данному уроку, напишите нам.
Если вы хотите увидеть другие корректировки и пожелания к урокам, смотрите здесь - Образовательный форум.
|