Комбинаторные алгоритмы для программистов

          

Производящие функции


В комбинаторных задачах на подсчет числа объектов при наличии некоторых ограничений искомым решением часто является последовательность

Производящие функции
, где
Производящие функции
- число искомых объектов "размерности"
Производящие функции
. Например, если мы ищем число разбиений числа, то можем принять
Производящие функции
, если ищем число подмножеств
Производящие функции
-элементного множества, то
Производящие функции
и т.д. В этом случае удобно последовательности
Производящие функции
, поставить в соответствие формальный ряд
Производящие функции

(8.12)

называемый производящей функцией для данной последовательности. Название формальный ряд для данной последовательности означает, что (8.12) мы трактуем только как удобную запись нашей последовательности - в данном случае несущественно, для каких (действительных или комплексных) значений переменной

Производящие функции
он сходится. Поэтому мы никогда не будем вычислять значение такого ряда для конкретного значения переменной
Производящие функции
, мы будем только выполнять некоторые операции на таких рядах, а затем определять коэффициенты при отдельных степенях переменной
Производящие функции
. Для произвольных рядов
Производящие функции

мы определим операцию сложения:

Производящие функции

(8.13)

операцию умножения на число (действительное или комплексное):

Производящие функции

(8.14)

и произведение Коши

Производящие функции

(8.15)

где

Производящие функции

(8.16)

Если

Производящие функции
для
Производящие функции
, то ряд (8.12) будем отождествлять с многочленом
Производящие функции
. Из математического анализа известно, что если ряд (8.12) сходится в некоторой окрестности нуля, то его сумма
Производящие функции
является аналитической функцией в этой окрестности и
Производящие функции

(8.17)

(

Производящие функции
обозначает значение
Производящие функции
-й производной функции
Производящие функции
для
Производящие функции
; ряд 8.12 - это не что иное, как ряд Маклорена функции
Производящие функции
). Более того, когда
Производящие функции
являются аналитическими функциями в окрестности нуля, то формулы (8.13)-(8.16) будут справедливы, если
Производящие функции
трактовать как значения функций
Производящие функции
в точке
Производящие функции
, а ряды понимать в обычном смысле, т.е. так, как в математическом анализе. Это сохраняющее операции взаимно однозначное соответствие между рядами, сходящимися в окрестности нуля, и функциями, аналитическими в окрестности нуля, позволяет отождествить формальный ряд (8.12) с определенной через него аналитической функцией в случае рядов, сходящихся в окрестности нуля (несмотря на то, что ряды мы будем трактовать всегда как формальные ряды, то есть только как формальную запись их коэффициентов). Таким образом, будем писать, например,
Производящие функции

Производящие функции

и т.д.

Производящие функции


Содержание раздела