Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Комбинаторные методы. Учебник.pdf
X
- •АВТОРСКИЙ КОЛЛЕКТИВ
- •содержание
- •Предисловие
- •Введение
- •Множества
- •Перестановки
- •Подмножества
- •Отношения
- •Операции над множествами
- •Прямое произведение
- •Отображения
- •Подстановки
- •Группы
- •Подгруппы и факторгруппы
- •Изоморфизм
- •Линейные векторные пространства
- •Определители
- •Комплексные числа
- •Графы
- •Вопросы для самопроверки по разделу 1
- •Задачи к разделу 1
- •Комбинаторные числа
- •Правило произведения
- •Перестановки
- •Размещения
- •Сочетания
- •Кортежи
- •Сочетания с повторениями
- •Разбиения
- •Числа Стирлинга и Белла
- •Разбиения чисел
- •Комбинаторные отображения
- •Формула включения и исключения
- •Примеры решения задач к разделу 2
- •Вопросы для самопроверки по разделу 2
- •Задачи к разделу 2
- •Подбор частного решения
- •Вопросы для самопроверки по разделу 3
- •Задачи к разделу 3
- •Раздел 4
- •Производящие функции
- •Формула Добинского
- •Разбиения чисел
- •Производящая функция свёртки
- •Метод отражения
- •Вопросы для самопроверки по разделу 4
- •Задачи к разделу 4
- •Раздел 5
- •Стандартные таблицы и пути
- •Формула крюков
- •Непересекающиеся пути
- •Вопросы для самопроверки по разделу 5
- •Задачи к разделу 5
- •Раздел 6
- •Вопросы для самопроверки по разделу 6
- •Задачи к разделу 6
- •Ответы на вопросы
- •Ответы к задачам
- •Дополнительная литература

Теперь, вооружённые уже определенными техническими сред-
⋅
−⋅
∑∑
∞
=
+
=
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
