HTML Diff
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>