
- •Введение
- •Библиография
- •Теория множеств
- •Множества и подмножества
- •Мощность множества
- •Операции над множествами
- •Декартово произведение
- •Круги Эйлера
- •Мультимножества
- •Бинарные отношения
- •Упорядоченные множества
- •Множества в информатике и программировании
- •Библиография
- •Комбинаторная теория
- •Правило сложения
- •Правило умножения
- •Метод включения и исключения
- •Перестановки
- •Размещения
- •Сочетания
- •Перестановки с повторениями
- •Размещения с повторениями
- •Сочетания с повторениями
- •Бином Ньютона и полиномиальная формула
- •Разбиения
- •Генерация всех перестановок
- •Генерация всех подмножеств
- •Генерация размещений без повторений
- •Генерация размещений с повторениями
- •Генерация сочетаний с повторениями
- •Генерация всех разбиений
- •Библиография
- •Теория графов
- •Основные понятия
- •Представление графов в компьютере
- •Матрица смежности
- •Матрица инцидентности
- •Список связности
- •Список рёбер
- •Обход графа в глубину
- •Обход графа в ширину
- •Маршруты, цепи и циклы
- •Связность
- •Сочленения
- •Мосты
- •Деревья
- •Эйлеровы графы
- •Гамильтоновы графы
- •Планарные графы
- •Покрытие и независимость
- •Библиография
- •Приложение А. Исчисление конечных сумм
- •Библиография
- •Приложение Б. Рекуррентные соотношения
- •Задача о ханойских башнях
- •Задача о разрезании пиццы
- •Задача Иосифа Флавия
- •Библиография
- •Приложение В. Элементы теории чисел
- •Делимость и кратность
- •Алгоритм Евклида
- •Простые числа
- •Сравнения
- •Библиография
- •Библиография
Приложение Б. Рекуррентные соотношения |
39 |
Приложение Б. Рекуррентные соотношения
С рекуррентными соотношениями мы уже встречались, например, в разделе «Комбинаторика». Под рекуррентными соотношениями понимаются соотношения (формулы), в которых некоторая величина, обычно функция, выражена через саму себя, но с другим параметром. К уже знакомым рекуррентным соотношениям относятся факториал, биномиальный коэффициент, числа Стирлинга, числа Белла, НОД. В этой лекции мы рассмотрим некоторые интересные задачи, приводящие к рекуррентным соотношениям, и способы их разрешения, то есть преобразования их к простой вычисляемой формуле.
Задача о ханойских башнях
Пожалуй одна из самых известных задач, решаемых рекурсивно. Сформулировал задачу в качестве головоломки Франсуа Эдуард Люка в XIX веке. Если коротко, то задача формулируется так: есть три колышка, на один из них нанизано n дисков разного размера так, что меньшие диски располагаются на больших. Требуется переложить эти диски с сохранением их порядка на один из двух других колышков, используя в качестве промежуточного один из них, при этом запрещается класть диски большего размера на меньшие.
Рассмотрим для начала решения этой задачи для небольших значений n: при n = 0, то есть когда дисков совсем нет, потребуется 0 перемещений; при n = 1 – одно, сразу на целевой колышек; при n = 2 – три, меньший диск переместим на второй колышек, затем больший диск на целевой (третий) диск и затем меньший диск со второго на целевой; при n = 3 – семь перемещений.
Обозначим количество перемещений дисков через T(n), тогда
T(0)=0,T (1)=1, T(2)=3, T(3)=7 .
Давайте подумаем, сколько перемещений дисков потребуется при произвольном их количестве n. Для перемещения одного, самого нижнего диска достаточно одного перемещения его на целевой колышек. Но сколько раз мы должны переместить остальные n−1 дисков, прежде чем сможем переместить этот самый нижний? Не трудно догадаться, что эти n−1 дисков будут расположены также как и первоначальные n дисков, но уже на втором колышке. Самое интересно, что ответ для этого случая у нас уже есть, это T(n−1) . После того как мы переместим самый нижний диск на третий колышек нам потребуется вновь переместить остальные n−1 дисков со второго колышка на него. И количество таких перемещений нам уже известно, это T(n−1) . В итоге получаем формулу:
T(n)=2 T (n−1)+1 .
Избавиться от рекуррентности можно разными способами. Рассмотрим их.
…
Задача о разрезании пиццы
…
Задача Иосифа Флавия
…
40 |
Симоненко Е.А. Дискретная математика. Лекции |
Библиография
Наилучшее введение в рекуррентные соотношения и производящие функции сделано в [Грэхем, Кнут, Паташник]. Можно также почитать соответствующее дополнение к [Хаггарти]. Производящим функциям посвящён отдельный учебник [Ландо]. Очень интересная книга [Окулов, Лялин], посвящённая единственной задаче – о ханойских башнях.