- •Глава I. Азы комбинаторики
- •§ 1. Основные принципы комбинаторики
- •§ 2. Размещения и перестановки без повторений
- •§ 3. Размещения и перестановки с повторениями
- •§ 4. Подмножества конечных множеств и сочетания
- •§ 5. Сочетания с повторениями
- •§ 6. Принцип включения-исключения
- •§ 7. Примеры решения простейших комбинаторных задач
- •§ 8. Примеры других комбинаторных объектов и сводка некоторых результатов
- •Биномиальные коэффициенты
- •Числа Стирлинга
- •Глава II. Рекуррентные соотношения
- •§ 1. Определение и примеры рекуррентных соотношений
- •Основы метода конечных разностей
- •§ 2. Метод производящих функций для нахождения общего решения линейного однородного рекуррентного соотношения второго порядка
- •Алгоритм нахождения общего решения
- •§ 3. Решение линейных неоднородных рекуррентных соотношений с постоянными коэффициентами и специальной правой частью
- •§ 4. Метод производящих функций для решения общего линейного однородного рекуррентного соотношения с постоянными коэффициентами
- •Алгоритм нахождения общего решения
- •§ 5. Частные решения линейных неоднородных рекуррентных соотношений с постоянными коэффициентами и специальной правой частью
- •§ 6. Некоторые примеры применения производящих функций
Биномиальные коэффициенты
Числа Стирлинга
Числа Стирлинга первого рода можно использовать, например, для перехода от факториальных степеней xn = x·(x – 1)·…·(x – n + 1) к обычным степеням:
xn = .
Числа Стирлинга второго рода можно использовать, например, для перехода от обычных степеней к факториальным:
xn = .
Кроме того, верны следующие свойства:
Глава II. Рекуррентные соотношения
§ 1. Определение и примеры рекуррентных соотношений
Рекуррентные соотношения получили своё название от латинского слова recurrere – возвращаться. Они играют очень важную роль в дискретной математике, являясь аналогом дифференциальных уравнений. В них участвует последовательность f(0), f(1), … комплексных чисел, подчиняющаяся следующему закону: f(n+1) = F(n+2)(n, f(n), f(n–1), … , f(0)) (n N0), где F(n+2) – некоторая заданная функция от (n+2)-х переменных. Таким образом, для вычисления f(n+1) нужно знать предыдущие значения f(n), f(n–1), … , f(0). Если число f(0) задано, то можно последовательно вычислять f(1) = F(2)(0, f(0)), f(2) = F(3)(1, f(1), f(0)), … , f(n+1) = F(n+2)(n, f(n), f(n–1), … , f(0)).
Рассмотренный вид рекуррентных соотношений тесно связан с задачами суммирования. Если нужно вычислить сумму , то эту задачу можно формулировать в описанной выше форме:
f(0) = a0 , F(2)(x, y) = y + ax+1 , f(1) = F(2)(0, f(0)) = a0 + a1 ,
F(3)(x, y, z) = y +ax+1 , f(2) = F(3)(1, f(1), f(0)) = a0 + a1 + a2 , …
В этом примере нужно учитывать, что последовательность {an} является функцией a : N0 C. Кроме того, видно, что некоторые аргументы у использованных в примере функций F(n) излишни.
Этот вид рекуррентных соотношений является слишком общим, чтобы ожидать получения каких-то содержательных результатов: на каждом шаге появляется, вообще говоря, новая функция F(n+2). Поэтому разумно сузить определение: рекуррентным соотношением порядка k называется запись вида
f(n+k) = F(n, f(n+k–1), f(n+k–2), … , f(n)) (n N0),
где F – фиксированная функция от k + 1 переменного. В этом случае для вычисления f(n+k) нужно вернуться на одно и то же количество шагов – на k, используя уже известные значения f(n+k–1), f(n+k–2), … , f(n). Очевидно, что если заданы значения f(0), … , f(k–1), то остальные значения определены рекуррентным соотношением однозначно:
f(k) = F(0, f(k–1), f(k–2), … , f(0)), f(k+1) = F(1, f(k), f(k–1), … , f(1)), и т.д.
Решением рекуррентного соотношения порядка k называется любая последовательность {un} , удовлетворяющая равенствам
un+k = F(n, un+k–1 , un+k–2 , … , un)
при любых n N0 . Любое конкретное решение называется частным решением рекуррентного соотношения.
Примеры: 1. f(n+1) = (n+1)f(n) – рекуррентное соотношение порядка 1. Здесь F(x, y) = (x+1)y и f(n+1) = F(n, f(n)).
Если f(0) = с, то f(1) = 1f(0) = с1, f(2) = 2f(1) = с12, и т.д. Видно, что f(n) = cn! , где n ! = 12…n и 0 ! = 1. Таким образом, un = n ! – частное решение рассматриваемого соотношения.
2. Любую геометрическую прогрессию можно задать в виде рекуррентного соотношения порядка 1: f(n+1) = qf(n), где q – знаменатель прогрессии. Здесь F(x, y) = qy и f(n+1) = F(n, f(n)).
Если f(0) = a, то f(1) = qf(0) = aq, f(2) = qf(1) = aq2 , и т.д. Видно, что f(n) = aqn . Решение un = 3qn является частным.
3. В виде рекуррентного соотношения порядка 2 можно задать и арифметическую прогрессию: a + nd (n N0). Здесь F(x, y, z) = 2y – z и f(n+2) = F(n, f(n+1), f(n)) = 2f(n+1) – f(n).
Если f(0) = a, f(1) = a + d, то f(2) = 2f(1) – f(0) = 2(a + d) – a = a + 2d, f(3) = 2f(2) – f(1) = 2(a + 2d) – (a + d) = a + 3d, и т.д. Видно, что в общем случае f(n) = a + nd. Это построение основано на школьной формуле для арифметической прогрессии fn = a + nd (n N0).
4. Арифметическую прогрессию fn = a + nd (n N0) можно задать и рекуррентным соотношением первого порядка: fn+1 = a + (n+1)d = a + nd + d = = fn + d, так что f(n + 1) = F(n, f(n)), где F(x, y) = y + d.
5. Последовательность чисел Фибоначчи также может быть задана как рекуррентная последовательность второго порядка: F(x, y, z) = y + z и f(n+2) = = F(n, f(n+1), f(n)) = f(n+1) + f(n) (n N).