|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Задача о ханойской башнеЗадача состоит в том, чтобы переместить всю башню из 8 дисков на один из других колышков, перенося каждый раз только один диск и не помещая больший на меньший. Наилучший способ разрешить вопрос, подобный нашему,— несколько обобщить его. Посмотрим, что будет в случае n дисков. Одно из преимуществ такого рода обобщения состоит в том, что можно будет даже еще уменьшить размер задачи. Полезно вначале рассмотреть крайние случаи. Совершенно ясно, как перемещать башню, состоящую только из одного или двух дисков, а после нескольких попыток становится понятно, как перемещать башню из трех дисков. Следующий шаг в решении задачи —выбор подходящего обозначения: обозначай и властвуй. Будем говорить, что Тn есть минимальное число перекладываний, необходимых для перемещения n дисков с одного колышка на другой по правилам. Тогда T1, очевидно, равно 1, а Т2 равно 3. Можно получить дополнительную информацию, причем совершенно бесплатно, если рассмотреть самый крайний случай: ясно, что Т0 = 0, поскольку для перемещения башни из n=0 дисков вообще не требуется ни одного перекладывания! Как переместить высокую башню? Эксперименты с тремя дисками показывают, что решающая идея состоит в переносе двух верхних дисков на средний колышек; затем переносится третий диск и на него помещаются два других. Это дает ключ к общему правилу перемещения n дисков: сначала мы перемещаем n— 1 меньших дисков на любой из колышков (что требует Tn-1 перекладываний), затем перекладываем самый большой диск (одно перекладывание) и, наконец, помещаем n— 1 меньших дисков обратно на самый большой диск (еще Tn-1 перекладываний). Таким образом, n дисков (при n > 0) можно переместить самое большее за 2Tn-1 + 1 перекладываний: Tn <= 2Tn-1 + 1. Более короткого пути нет. На некотором этапе мы обязаны переместить самый большой диск. Когда мы это делаем, n — 1 меньших дисков должны находиться на одном колышке, а для того, чтобы собрать их вместе, потребуется по меньшей мере Tn-1 перекладываний. Самый большой диск можно перекладывать и более одного раза, если мы не очень расторопны. Но после перемещения самого большого диска в последний раз мы обязаны поместить n — 1 меньших дисков (которые опять должны находиться на одном колышке) обратно на наибольший диск, что также требует Tn-1 перекладываний. Следовательно¸ Tn >=2Tn-1 + 1. Это значит, что Tn =2Tn-1 + 1. (1.1) - совокупность подобных равенств называется рекуррентным соотношением. Найдём прямую формулу. T0 = 0, T1 = 1, T2 = 3, T3 = 7, T4 = 15, T5= 31, T6 = 63. Очень похоже на 2n-1. Для произвольного номера n это можно доказать с помощью метода математической индукции. В нашем случае база индукции тривиальна, поскольку Т0 = 20 —1 = 0, а индуктивный переход выполняется для n > 0, когда n заменяется на n — 1: Tn = 2Tn-1 + 1 = 2(2n-1-1)+ 1 = 2n-1. Следовательно, общая формула доказана для любого n =1,2,3…. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |