Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комбинаторные методы. Учебник.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
Теперь, вооружённые уже определенными техническими сред-
 
 
 
 
=
+
=
n
n
n
ii
i
i
xCxCx
0
3
3
6
4
0
4
4
)1(
11,0
1296
146
6
146
4
==P
ствами, перейдём к задачам, решение которых методом производя­щих функций путём прямого перемножения скобок было бы доста­точно утомительным.
Какова вероятность при бросании четырёх игральных костей вы­бросить 14 очков?
Эта вероятность равна отношению числа способов выбросить 14 очков к полному числу возможных выпадений четырёх различ­ных костей. Подсчёт полного числа выпадений четырёх различных костей не составляет труда. Так как каждая кость имеет шесть гра-
ней, то это число равно 6
.
Сложнее найти число способов, которыми может быть выбро­шено 14 очков. Ответом на этот вопрос является коэффициент при

в выражении ( + + + + +
)
. Здесь каждая из че­тырёх скобок, возникающих при расписывании степени в виде про­изведения, соответствует одной из игральных костей, а стоящие в
скобке степени переменной выражают возможные значения очков
на данной кости. После выполнения алгебраических преобразова­ний коэффициенты степенного ряда укажут число способов получе­ния любой суммы от 4 до 24. Поэтому полученный степенной ряд (в данном случае конечный) называется производящей функцией для числа способов выпадения различных сумм в четырёх броса­ниях. Используя (4.2) и (4.3), найдём эту производящую функ­цию
(+ + + + +
=  (1  
)
()
)
=  (1 + + + + +
=
)
.
=
Легко видеть, что степень

возникает в двух случаях: когда в
первой сумме = 0, а во второй = 10, и когда в первой сумме
= 1, а во второй — = 4. Поэтому коэффициент при 
вен
×

 
×
= 146. Таким образом, искомая вероятность

ра-
равна
.
131
Пусть требуется найти число целочисленных решений системы
4 
9  5 
+ +
  
15,
 18,  16.
= 40,
Легко понять, что искомое число решений есть коэффициент

при
после раскрытия скобок в выражении
(
+ . . . +

)(
+ . . . +

)(
+ . . . +

)
.
Три перемножаемые скобки соответствуют переменным
, ,
, и выписанное выражение является производящей функ-
цией для числа решений системы
+ + = ,
4 
9  5 
так как при любом целом 0, коэффициент при решений. Найдём коэффициент при
=
(
+ +
(
1 + +


)(
)
(
1  
= 
1  
1
= 
= 
(
1  


(1   2+ 2+ + 
)

(1  
15,
18,
16,
+ +
1 + +

1  
1  

2+ 2+  



.
)
равен числу
) (
(
1 + +
1  
1  
+ +

=


)
=
)

=
)
В коэффициент при  дают вклад значения = 22, 12, 10, 0.
Поэтому число решений равно


С


С
2С


+ 2С

=

2

+ 2 = 55.
=

).
132

Формула Добинского

Информация о комбинаторных числах в методе производящих функций извлекается путём аналитической работы с бесконечными рядами, порождаемыми последовательностями этих чисел, что тре­бует определённых навыков такой работы и аналитической техники. Продемонстрируем мощь метода производящих функций на сравни­тельно несложном в техническом отношении, но классическом примере вывода формулы Добинского для чисел Белла, которая в разделе 2 была приведена без доказательства.
Заметим прежде всего, что
= 
(
=
так как

= 0 при   1. Рассматривая теперь для чисел Стир-
линга производящую функцию ранее соотношения, найдём
 

Подставляя в полученное тождество х = 1, получаем формулу Добинского

)
+
!
=  
=

!
(
!

+

!
=

= 
)
!

=  
 

1
=


!

=
=
(
+
(
+

= 
!
и используя полученные



!

.
!


)
!
)
=
!
!
!
=
!
.
,

Разбиения чисел

Обратимся к разбиениям чисел на суммы, используя в качестве метода исследования производящие функции, впервые использован-
ные в этой задаче Эйлером. Пусть (, {, , , …} ний натурального числа на суммы, слагаемые в которых берутся
)
число разбие-
133
из множества {, , , … } с возможными повторениями. Производя- щая функция для (, {, , , …}
 (,{, , , …})

(
×
1 + + + )(1 + + +
= (1  
)
)
есть
(
=
1 + + + + +
(1  
)
(1  
)
)
… =
)
×
Производящая функция для числа разбиений на натуральные слагаемые есть
 ()

(
=
1  

)
(
1  
)
(
1  
)
Производящая функция для числа разбиений на нечётные слага­емые есть
 (, {1,3,5,… })

Пусть теперь
=
(
, {, , , …}
(

)
1  
)
число разбиений натурального
(
1  
)
(
1  
)
числа на суммы, слагаемые в которых берутся из множества {, , , … } без повторений. Для производящей функции имеем
(
, {, , , …})
 

= (1 +
)
(1 + )(1 +
) …
Производящая функция для числа разбиений на натуральные слагаемые без повторений
 ′()

= (1 + )(1 + )(1 + 
) …
Производящая функция для числа разбиений на нечётные слага­емые без повторений
 

(
, {1,3,5,… })
= (1 + )(1 + )(1 +
) …
134
В качестве одного любопытного приложения производящих функций докажем единственность представления натурального числа
в двоичной системе счисления:
 

󰆒
(,{
=
1,2,4,8, …
1  
1  
1   1  
})
1  
1  
=
(
1 + )(1 +
 
… =
1
1  
)(
1 +
=  

)
=
.
С помощью производящих функций можно получить следую­щий интересный результат о числе разбиений.
Для каждого натурального число его разбиений на слагаемые
без повторений равно числу его разбиений на нечётные слагаемые
с возможными повторениями:
=
(
1  )(1  
()
 

(
1  )(1 + )(1  
=
(
1  
)(
1  
)(
(
1  
(
=
1 + )(1 +
)(
1  )(1  
1  
)(
)
1  
)(
=  (, {1,3,5,… })

() = (, {1,3,5, … }
)(
1 +
1 +
)
)(
)(
1  
=
)(
1  
)
(
1  )(1  
.
)
… =
1 +
1
)
.
)
)(
=
1  
=
)
Функция P(n) очень быстро растущая. Поэтому остро стоял вопрос определения хорошего асимптотического выражения для неё. И в этой области был получен один из самых красивейших результатов всей математики. Путём очень тонкого анализа про­изводящей функции, опирающегося на методы теории функций комплексного переменного, Харди и Рамануджан в 1918 году по­лучили выражение для P(n) в виде асимптотического ряда.
Эта формула в 1938 году была уточнена Радемахером, кото­рый получил для P(n) выражение в виде быстро сходящегося ряда. Вот эта замечательная формула
135
где


, s(m,
k
)
Условие (m,
sh(
x
)гиперболический синус, sh(
k
) = 1 означает, что m и k взаимно просты.
x
) =
сумма Дедекинда
.
При вычислениях берётся целая часть от результата, давае­мого этой формулой. Ряд очень быстро сходится. Например, для
P(200) правильный результат (
P
(200) = 3 972 999 029 388)
дают уже первые восемь членов ряда:
3 972 998 993 185,896 + 36 282,978 – 87,555 + 5,147 + 1,424 +
+ 0, 071 + 0,000 + 0,043 = 3 972 999 029 388,004.
Трудоёмкость вычислений на компьютере по этой формуле

имеет порядок
ное значение
, где ε произвольно малая величина. Рекорд-
P
(1020) было вычислено в 2014 году. Его запись со-
держит свыше 11 миллиардов цифр.
Производящие функции
рекуррентных последовательностей
Производящие функции могут быть эффективно использованы для исследования последовательностей, заданных линейными рекур­рентными соотношениями. Термин «рекуррентный» введён Муав-
136
ром, впервые применившим метод производящих функций для ре­шения линейных рекуррентных соотношений. Помимо метода про­изводящих функций им был сделан целый ряд других важных мате­матических открытий, в частности получена знаменитая предельная теорема Муавра Лапласа в теории вероятностей.
Как уже говорилось, простейшими линейными рекуррентными последовательностями являются арифметическая прогрессия, зада-
ваемая соотношением задаваемая соотношением
= + , и геометрическая прогрессии,

= 

. У этих рекуррентных
последовательностей каждый последующий член определяется предыдущим, а первый член задаётся, поэтому получение формулы
для -го члена не составляет труда:

= 
. Задача становится нетривиальной, если каждый после-
= + (  1),
дующий член определяется двумя или большим числом предыду­щих членов.
Рассмотрим пример рекуррентной последовательности
{
} = + + + , у которой каждый член, начиная с треть-
его, выражается через два предыдущих с помощью соотношения

= 4
3, а два первых члена равны = 8, 

= 10.
С помощью рекуррентного соотношения, используя заданные зна-
чения
и , получаем, что = 16, 
= 34 и т. д. Задача состоит
в том, чтобы найти в явном виде формулу -го члена.

Помножив обе части рекуррентного соотношения на
и про-
суммировав по , получим
 



= 4 



3 

.
Отсюда для производящей функции
() =
+  + +
имеем соотношение:
()  
 = 4(()  )  3();
()  8  10= 4(()  8)  3().
137
Разрешая его относительно (), получаем
() =



=
()(

)
.
Разложим полученное дробно-рациональное выражение на про­стейшие дроби
где и подлежащие определению числа. Так как находим неизвестные и из системы уравнений

()()
+


3+ = 22
+ = 8,
=
=

()()
()()
+

,
,
что даёт = 7, = 1, и разложение приобретает вид
() =
Далее имеем:

()()
= 7(1 + + + ) и

= 1 + (3) + (3)+

=


+


=

+

.
Таким образом, окончательно получаем разложение () в сте-
пенной ряд в виде
() = 7(1 + + + ) + 1 + (3) + (3)+ =
=

Это позволяет выписать формулу -го члена:
(
7 + 3
)
= 7 + 3
.
.
Использованный здесь метод является общим приёмом для ре­шения линейных рекуррентных соотношений, суть которого можно выразить следующим образом:
138
1) из заданного рекуррентного соотношения получаем линейное
уравнение для производящей функции, решая которое находим про­изводящую функцию последовательности;
2) раскладывая производящую функцию в ряд, находим члены ис-
комой последовательности как коэффициенты этого степенного ряда.
Рассмотрим теперь, как рекуррентные соотношения возникают в реальных перечислительных задачах. Пусть требуется найти чис-
двоичных последовательностей длины , не содержащих двух
ло
единиц подряд. При = 1 имеются две такие последовательности: (0) и (1). При = 2 таких последовательностей три: (0,1), (1,0). Поэтому
= 2,
= 3.
(
0,0),
Разобьём искомое множество последовательностей длины
на два подмножества: последовательности, начинающиеся с 0, и последовательности, начинающиеся с 1. Последовательности пер­вого типа не имеют каких-либо дополнительных ограничений на по-
следующие   1 символов. Поэтому их
. Последовательности

второго типа на второй позиции обязаны содержать 0, а на последу-
ющие   2 символов нет каких-либо ограничений, поэтому их
. Это приводит к рекуррентному соотношению

= 

+

,
т. е. каждый член последовательности, начиная с третьего, равен
сумме двух предыдущих членов. Положим
ное соотношение будет выполняться начиная со второго члена. Вме-
сте с начальными данными
= 1 и
бой член последовательности
= 2 оно позволяет найти лю-
, , , .. . ,
членов: 1, 2, 3, 5, 8, 13, 21, …
Данная последовательность называется последовательностью Фибоначчи, по имени впервые рассмотревшего её итальянского математика XIII века. Она возникла в придуманной им своеобраз­ной задаче о размножении кроликов. Пара кроликов, появившись на свет, даёт в качестве приплода каждый месяц, исключая пер­вый месяц после рождения, ещё пару кроликов. Некто покупает одну взрослую пару и ежемесячно считает число имеющихся у него пар, которое может быть найдено с помощью указанного ре­куррентного соотношения.
= 1. Тогда рекуррент-
, … Вот первые семь
139
Для получения формулы -го члена в явном виде домножим обе части рекуррентного соотношения (4) на
и просуммируем по от
2 до ∞:

=


+


.
Это позволяет для производящей функции
()= +  +  +. . . + 
+ …
получить соотношение
() 1 2= (() 1)+ (
Разрешая это соотношение относительно (), получаем
()= 


.
)
.
Разлагаем данное рациональное выражение на простейшие дроби:
+   1 =(  
(
(  
Подставляя =
)(
  
)
=

)
+ (  
, получаем
=
+



)
, где
=
=
)

=
(


)(

=  1.

.

, 
)

=
;
Подставляя =
, получаем
=


=


.
Для производящей функции () имеем
()= 




󰇡
󰇢
=
=
󰇡


+

󰇡
󰇢
󰇢
.
;
140
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]