0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Часто нам нужно посчитать количество объектов, комбинаций или вариантов чего-либо. Например, мы хотим понять, как рассадить гостей на конференции. Для этого мы будем перебирать различные варианты рассадки, чтобы выбрать лучший.</p>
1
<p>Часто нам нужно посчитать количество объектов, комбинаций или вариантов чего-либо. Например, мы хотим понять, как рассадить гостей на конференции. Для этого мы будем перебирать различные варианты рассадки, чтобы выбрать лучший.</p>
2
<p>Чтобы произвести подобные вычисления, в математике используют перечислительную комбинаторику.</p>
2
<p>Чтобы произвести подобные вычисления, в математике используют перечислительную комбинаторику.</p>
3
<p>В этом уроке мы разберем, что такое перечислительная комбинаторика, и как с ее помощью можно посчитать количество комбинаций из нескольких элементов.</p>
3
<p>В этом уроке мы разберем, что такое перечислительная комбинаторика, и как с ее помощью можно посчитать количество комбинаций из нескольких элементов.</p>
4
<h2>Что такое перечислительная комбинаторика</h2>
4
<h2>Что такое перечислительная комбинаторика</h2>
5
<p>Это ветвь комбинаторики, которой человечество пользуется уже очень давно. Она помогает ответить на один из базовых вопросов: "Сколько возможно вариантов?".</p>
5
<p>Это ветвь комбинаторики, которой человечество пользуется уже очень давно. Она помогает ответить на один из базовых вопросов: "Сколько возможно вариантов?".</p>
6
<p>Перечислительная комбинаторика помогает узнать, сколько существует вариантов - то есть разных структур заданного размера. Например, можно выяснить, сколько существует вариантов:</p>
6
<p>Перечислительная комбинаторика помогает узнать, сколько существует вариантов - то есть разных структур заданного размера. Например, можно выяснить, сколько существует вариантов:</p>
7
<ul><li>Расстановки 100 книг на полке</li>
7
<ul><li>Расстановки 100 книг на полке</li>
8
<li>Размещения 40 гостей в зале</li>
8
<li>Размещения 40 гостей в зале</li>
9
<li>Последовательности 10 уроков в курсе по математике</li>
9
<li>Последовательности 10 уроков в курсе по математике</li>
10
</ul><p>В перечислительной комбинаторике есть несколько вариантов подсчета - среди них нет единственного верного способа. Правильным способом подсчета будет тот, который подходит под конкретную задачу. Поэтому можно использовать разные подходы, которые мы рассмотрим далее.</p>
10
</ul><p>В перечислительной комбинаторике есть несколько вариантов подсчета - среди них нет единственного верного способа. Правильным способом подсчета будет тот, который подходит под конкретную задачу. Поэтому можно использовать разные подходы, которые мы рассмотрим далее.</p>
11
<h2>Два способа подсчета</h2>
11
<h2>Два способа подсчета</h2>
12
<p>Возьмем такой пример:</p>
12
<p>Возьмем такой пример:</p>
13
<p>Нужно узнать, сколько существует способов записать (n - 1) в виде упорядоченной суммы 1 и 2</p>
13
<p>Нужно узнать, сколько существует способов записать (n - 1) в виде упорядоченной суммы 1 и 2</p>
14
<p>Разберем условие задачи на основные составляющие и определим, как ее решить:</p>
14
<p>Разберем условие задачи на основные составляющие и определим, как ее решить:</p>
15
<ul><li>Есть множество объектов - это упорядоченные суммы 1 и 2</li>
15
<ul><li>Есть множество объектов - это упорядоченные суммы 1 и 2</li>
16
<li>Это множество объектов параметризуется целым числом n - всего n - 1</li>
16
<li>Это множество объектов параметризуется целым числом n - всего n - 1</li>
17
<li>Нужно найти функцию f:N → N, при которой f(n) будет верным для всех n</li>
17
<li>Нужно найти функцию f:N → N, при которой f(n) будет верным для всех n</li>
18
</ul><p>Для ответа на вопрос мы собрали первые несколько значений f(n) в таблице:</p>
18
</ul><p>Для ответа на вопрос мы собрали первые несколько значений f(n) в таблице:</p>
19
<p>С помощью этих данных разберем два способа подсчета в перечислительной комбинаторике:</p>
19
<p>С помощью этих данных разберем два способа подсчета в перечислительной комбинаторике:</p>
20
<ul><li>Рекуррентные отношения</li>
20
<ul><li>Рекуррентные отношения</li>
21
<li>Замкнутая формула</li>
21
<li>Замкнутая формула</li>
22
</ul><p>Рассмотрим их подробнее.</p>
22
</ul><p>Рассмотрим их подробнее.</p>
23
<h3>Рекуррентные отношения</h3>
23
<h3>Рекуррентные отношения</h3>
24
<p>Для начала найдем<strong>рекуррентное соотношение</strong>для ответа - это уравнение, в котором следующий член вычисляется как функция предыдущих членов.</p>
24
<p>Для начала найдем<strong>рекуррентное соотношение</strong>для ответа - это уравнение, в котором следующий член вычисляется как функция предыдущих членов.</p>
25
<p>Как видите, это<strong>рекурсия</strong>- такое уравнение может продолжаться бесконечно, постоянно по кругу обращаясь к результатам предыдущих вычислений.</p>
25
<p>Как видите, это<strong>рекурсия</strong>- такое уравнение может продолжаться бесконечно, постоянно по кругу обращаясь к результатам предыдущих вычислений.</p>
26
<p>Один из самых наглядных примеров рекуррентных соотношений - это ряд Фибоначчи:</p>
26
<p>Один из самых наглядных примеров рекуррентных соотношений - это ряд Фибоначчи:</p>
27
<p>F(n) = F(n - 1) + F(n - 2)</p>
27
<p>F(n) = F(n - 1) + F(n - 2)</p>
28
<p>Вернемся к примеру выше. Возьмем упорядоченные суммы и разделим их на два случая:</p>
28
<p>Вернемся к примеру выше. Возьмем упорядоченные суммы и разделим их на два случая:</p>
29
<ol><li>Суммы, у которых последний член - 1</li>
29
<ol><li>Суммы, у которых последний член - 1</li>
30
<li>Суммы, у которых последний член - 2</li>
30
<li>Суммы, у которых последний член - 2</li>
31
</ol><p>Далее найдем различные суммы в обоих случаях:</p>
31
</ol><p>Далее найдем различные суммы в обоих случаях:</p>
32
<ol><li>Есть f(n) различных сумм. Они равны n - 1 с единицей, добавленной в конце каждой суммы</li>
32
<ol><li>Есть f(n) различных сумм. Они равны n - 1 с единицей, добавленной в конце каждой суммы</li>
33
<li>Есть f(n - 1) различных сумм</li>
33
<li>Есть f(n - 1) различных сумм</li>
34
</ol><p>В итоге мы находим:</p>
34
</ol><p>В итоге мы находим:</p>
35
<p>f(n + 1) = f(n) + f(n - 1)</p>
35
<p>f(n + 1) = f(n) + f(n - 1)</p>
36
<p>Вместе с начальными значениями f(0) = 0 и f(1) = 1 последовательность однозначно определена - то есть имеет единственное решение.</p>
36
<p>Вместе с начальными значениями f(0) = 0 и f(1) = 1 последовательность однозначно определена - то есть имеет единственное решение.</p>
37
<p>Теперь у нас есть такое уравнение:</p>
37
<p>Теперь у нас есть такое уравнение:</p>
38
<p>(f(n + 1) = f(n) + f(n - 1))</p>
38
<p>(f(n + 1) = f(n) + f(n - 1))</p>
39
<p>Это значит, что у нас есть более простой способ вычислить f(n) с помощью примерно n сложений.</p>
39
<p>Это значит, что у нас есть более простой способ вычислить f(n) с помощью примерно n сложений.</p>
40
<p>Нам больше не нужно записывать все вычисления из таблицы выше. Теперь необходимо только f(n) - числа из последнего столбца. Чтобы вычислить последующие строки, нужно помнить только две предыдущие.</p>
40
<p>Нам больше не нужно записывать все вычисления из таблицы выше. Теперь необходимо только f(n) - числа из последнего столбца. Чтобы вычислить последующие строки, нужно помнить только две предыдущие.</p>
41
<p>Рекуррентное соотношение дает алгоритм. Он помогает найти такую функцию f : N → N, при которой f(n) будет правильным ответом для всех n.</p>
41
<p>Рекуррентное соотношение дает алгоритм. Он помогает найти такую функцию f : N → N, при которой f(n) будет правильным ответом для всех n.</p>
42
<p>Продолжим подсчеты с помощью еще одного способа - замкнутой формулы.</p>
42
<p>Продолжим подсчеты с помощью еще одного способа - замкнутой формулы.</p>
43
<h3>Замкнутая формула</h3>
43
<h3>Замкнутая формула</h3>
44
<p>Это математическое выражение, которое можно получить с помощью комбинации чисел или функций и ссылки на операции. Решения, которые дают удовлетворительный ответ, называются<strong>решениями в замкнутой формуле</strong>.</p>
44
<p>Это математическое выражение, которое можно получить с помощью комбинации чисел или функций и ссылки на операции. Решения, которые дают удовлетворительный ответ, называются<strong>решениями в замкнутой формуле</strong>.</p>
45
<p>Рассмотрим следующие функции, каждая из которых - ответ на комбинаторную задачу подсчета:</p>
45
<p>Рассмотрим следующие функции, каждая из которых - ответ на комбинаторную задачу подсчета:</p>
46
<p>f1(n) = n^n - 2 f2(n) = n! * Σ[k=0 to n] ((-1)^k) / k! f3(n) ≈ ближайшее целое число к (n! / e) f4(n) = (1 / √5) * ( (9 * τ^n)_1 - (τ^n)_2 )</p>
46
<p>f1(n) = n^n - 2 f2(n) = n! * Σ[k=0 to n] ((-1)^k) / k! f3(n) ≈ ближайшее целое число к (n! / e) f4(n) = (1 / √5) * ( (9 * τ^n)_1 - (τ^n)_2 )</p>
47
<p>Разберем каждую функцию подробнее.</p>
47
<p>Разберем каждую функцию подробнее.</p>
48
<ul><li>Функция типа f1 - вполне удовлетворительный ответ, потому что у членов сумм есть комбинаторный смысл - они соответствуют определенным частичным графам. Но есть одна сложность - немногие задачи допускают такие решения. Часто нам нужны суммы в ответе, например, как в f2</li>
48
<ul><li>Функция типа f1 - вполне удовлетворительный ответ, потому что у членов сумм есть комбинаторный смысл - они соответствуют определенным частичным графам. Но есть одна сложность - немногие задачи допускают такие решения. Часто нам нужны суммы в ответе, например, как в f2</li>
49
<li>f2 - это не замкнутая формула. Но это удовлетворительный ответ, потому что проще вычислить f2, чем перечислять все объекты, которые она учитывает</li>
49
<li>f2 - это не замкнутая формула. Но это удовлетворительный ответ, потому что проще вычислить f2, чем перечислять все объекты, которые она учитывает</li>
50
<li>Формулы f3 и f4 - не комбинаторные, так как в них участвуют нерациональные члены. При этом такие формулы все равно могут быть содержательными, и у них менее загроможденный вид - например: f2 = f3</li>
50
<li>Формулы f3 и f4 - не комбинаторные, так как в них участвуют нерациональные члены. При этом такие формулы все равно могут быть содержательными, и у них менее загроможденный вид - например: f2 = f3</li>
51
</ul><h2>Выводы</h2>
51
</ul><h2>Выводы</h2>
52
<p>В этом уроке мы познакомились с перечислительной комбинаторикой и узнали, как она помогает подсчитать количество способов построения и перебора элементов. В работе с ней есть несколько особенностей:</p>
52
<p>В этом уроке мы познакомились с перечислительной комбинаторикой и узнали, как она помогает подсчитать количество способов построения и перебора элементов. В работе с ней есть несколько особенностей:</p>
53
<ul><li>На подсчеты вариантов могут накладываться определенные ограничения - например, различимость, повторения одинаковых элементов</li>
53
<ul><li>На подсчеты вариантов могут накладываться определенные ограничения - например, различимость, повторения одинаковых элементов</li>
54
<li>Решать такие задачи можно двумя способами: с помощью рекуррентных отношений и замкнутой формулы. Единственно верного способа нет, поэтому нужно выбирать способ под конкретную задачу</li>
54
<li>Решать такие задачи можно двумя способами: с помощью рекуррентных отношений и замкнутой формулы. Единственно верного способа нет, поэтому нужно выбирать способ под конкретную задачу</li>
55
</ul>
55
</ul>