Лекция № 10.
Тема: примеры рекуррентных соотношений
Основные вопросы, рассматриваемые на лекции:
1. Задача о ханойской башне
2. Разрезание пиццы
3. Задача Флавия
Краткое содержание лекционного материала
1. Задача о ханойской башне. Эту головоломку придумал французский математик Э. Люк в 1883 г. Формулировка задачи «Ханойская башня»:
Есть три стержня: A, B и C. На стержень A надето 8 колец: наверху самое маленькое, каждое следующее больше предыдущего, а внизу самое большое. Два других стержня пусты. Необходимо перенести все кольца со стержня A на стержень C, чтобы на стержне C кольца были в том же порядке, в котором они исходно находились на стержне A. Брать за один ход несколько колец нельзя. Кроме того, никогда нельзя класть большее кольцо поверх меньшего.
Рекуррентное отношение для решения задачи «Ханойская башня»: пусть – число ходов для решения задачи, где
– число колец; тогда представим, что верхние
колец перенесены на стержень
(за
ходов); тогда за один ход нижнее кольцо перенесем на стержень
; затем за
ходов верхние
колец на стержень
; получим
. Значит,
.
Алгоритм: нечетный шаг – нужно перемещать верхнее кольцо, четный шаг – произведем единственно возможное перемещение оставшихся колец. Если перенумеровать кольца по порядку, то четные и нечетные кольца будут перемещаться в различных направлениях по кругу.
2. Разрезание пиццы. Впервые эта задача была решена в 1826 г. швейцарским математиком Я. Штейнером. Формулировка задачи: на какое максимальное число областей можно разделить плоскость
прямыми?
Рассмотрев случаи можно подумать, что
. Однако уже при
получается
. Рекуррентное соотношение:
.
Решение: .
3. Задача Флавия основана на легенде, что отряд Флавия не пожелал сдаваться в плен блокировавшим пещеру превосходящими силам римлян. Воины, в составе сорока человек, стали по кругу и договорились, что каждые два воина будут убивать третьего, пока не погибнут все. При этом двое воинов, оставшихся последними в живых, должны были убить друг друга. Иосиф Флавий, командовавший этим отрядом, якобы быстро рассчитал, где нужно встать ему и его товарищу, чтобы остаться последними, но не для того, чтобы убить друг друга, а чтобы сдать крепость римлянам.
В более общей формулировке задачи участвует n воинов, стоящих по кругу, и убивают каждого m-го. Требуется определить номер k начальной позиции воина, который останется последним.