Лекция № 10.

Тема: примеры рекуррентных соотношений

Основные вопросы, рассматриваемые на лекции:

1. Задача о ханойской башне

2. Разрезание пиццы

3. Задача Флавия

Краткое содержание лекционного материала

1. Задача о ханойской башне. Эту головоломку придумал французский математик Э. Люк в 1883 г. Формулировка задачи «Ханойская башня»:

Есть три стержня: A, B и C. На стержень A надето 8 колец: наверху самое маленькое, каждое следующее больше предыдущего, а внизу самое большое. Два других стержня пусты. Необходимо перенести все кольца со стержня A на стержень C, чтобы на стержне C кольца были в том же порядке, в котором они исходно находились на стержне A. Брать за один ход несколько колец нельзя. Кроме того, никогда нельзя класть большее кольцо поверх меньшего.

Рекуррентное отношение для решения задачи «Ханойская башня»: пусть – число ходов для решения задачи, где – число колец; тогда представим, что верхние колец перенесены на стержень (за ходов); тогда за один ход нижнее кольцо перенесем на стержень ; затем за ходов верхние колец на стержень ; получим . Значит, .

Алгоритм: нечетный шаг – нужно перемещать верхнее кольцо, четный шаг – произведем единственно возможное перемещение оставшихся колец. Если перенумеровать кольца по порядку, то четные и нечетные кольца будут перемещаться в различных направлениях по кругу.

2. Разрезание пиццы. Впервые эта задача была решена в 1826 г. швейцарским математиком Я. Штейнером. Формулировка задачи: на какое максимальное число областей можно разделить плоскость прямыми?

Рассмотрев случаи можно подумать, что . Однако уже при получается . Рекуррентное соотношение: .

Решение: .

3. Задача Флавия основана на легенде, что отряд Флавия не пожелал сдаваться в плен блокировавшим пещеру превосходящими силам римлян. Воины, в составе сорока человек, стали по кругу и договорились, что каждые два воина будут убивать третьего, пока не погибнут все. При этом двое воинов, оставшихся последними в живых, должны были убить друг друга. Иосиф Флавий, командовавший этим отрядом, якобы быстро рассчитал, где нужно встать ему и его товарищу, чтобы остаться последними, но не для того, чтобы убить друг друга, а чтобы сдать крепость римлянам.

В более общей формулировке задачи участвует n воинов, стоящих по кругу, и убивают каждого m-го. Требуется определить номер k начальной позиции воина, который останется последним.