Комбинаторные объекты — различия между версиями
Dantesto (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
||
| (не показано 13 промежуточных версий 4 участников) | |||
| Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
| − | |definition = '''Комбинаторные объекты''' (англ. ''combinatorial objects'') — | + | |definition = '''Комбинаторные объекты''' (англ. ''combinatorial objects'') — конечные множества, на элементы которых могут накладываться определённые ограничения, такие как: различимость или неразличимость элементов, возможность повторения одинаковых элементов и т. п.}} |
{{Определение | {{Определение | ||
| − | |definition = Если два комбинаторных объекта, различающихся только порядком элементов, считаются различными, то они называются '''упорядоченными'''. | + | |definition = Если два комбинаторных объекта, различающихся только порядком элементов, считаются различными, то они называются '''упорядоченными''' (англ. ''ordered''). |
}} | }} | ||
== Примеры комбинаторных объектов == | == Примеры комбинаторных объектов == | ||
| − | === Битовые | + | === Битовые векторы === |
| − | '''[[Получение объекта по номеру#Битовые | + | {{Определение |
| + | |definition='''[[Получение объекта по номеру#Битовые векторы | Битовые векторы]]''' (англ. ''bit vectors'') — последовательность нулей и единиц заданной длины. | ||
| + | }} | ||
=== Перестановки === | === Перестановки === | ||
| − | '''Перестановки<ref>[ | + | {{Определение |
| + | |definition='''Перестановки<ref>[https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0 Википедия — Перестановки]</ref>''' (англ. ''permutations'') — упорядоченный набор чисел <tex>1, 2,\ldots, n</tex>, обычно трактуемый как биекция на множестве <tex>\{ 1, 2,\ldots, n \}</tex>, которая числу <tex>i</tex> ставит соответствие <tex>i</tex>-й элемент из набора. | ||
| + | }} | ||
| + | Примером перестановки может служить задача о рассадке <tex>n</tex> человек за стол по <tex>n</tex> местам. | ||
| + | |||
| + | === Перестановки с повторениями === | ||
| + | {{Определение | ||
| + | |definition='''Перестановки с повторениями''' (англ. ''permutations with repetitions'') — те же перестановки, однако некоторые элементы могут встречаться несколько раз. | ||
| + | }} | ||
| + | В пример можно привести следующую задачу: имеется набор книг <tex>\{a_1, a_2, \ldots, a_n\}</tex>, каждая из которых имеется в <tex>k_1, k_2, \ldots, k_n</tex> экземплярах соответственно. Сколько существует способов переставить книги на полке? | ||
=== Размещения === | === Размещения === | ||
| − | '''Размещение''' из <tex>n</tex> по <tex>k</tex> — | + | {{Определение |
| + | |definition='''Размещение'''<ref>[https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5 Википедия — Размещения]</ref> (англ. ''arrangement'') из <tex>n</tex> по <tex>k</tex> — упорядоченный набор из <tex>k</tex> различных элементов некоторого <tex>n</tex>-элементного множества. | ||
| + | }} | ||
| + | Примером размещения может служить задача о рассадке <tex>k</tex> человек за стол по <tex>n</tex> местам, где <tex>n > k</tex>. | ||
| + | |||
| + | === Размещения с повторениями === | ||
| + | {{Определение | ||
| + | |definition='''Размещение с повторениями''' (англ. ''arrangement with repetitions''), составленное из данных <tex>n</tex> элементов по <tex>k</tex> — отображение множества <tex>k</tex> первых натуральных чисел <tex>1, 2, \ldots, k</tex> в данное множество <tex>\{a_1, a_2, \ldots, a_n\}</tex>. | ||
| + | }} | ||
| + | В пример можно привести следующую задачу: имеется <tex>n</tex> книг, каждая в <tex>k</tex> экземплярах. Сколькими способами может быть сделан выбор книг из числа данных? | ||
=== Сочетания === | === Сочетания === | ||
| − | '''Сочетания<ref>[ | + | {{Определение |
| + | |definition='''Сочетания<ref>[https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B5 Википедия — Сочетания]</ref>''' (англ. ''combinations'') из <tex>n</tex> по <tex>k</tex> — набор <tex>k</tex> элементов, выбранных из данных <tex>n</tex> элементов. | ||
| + | }} | ||
| + | Примером сочетания может служить задача о выборе <tex>k</tex> книг из <tex>n</tex> вариантов. | ||
| − | === | + | === Сочетания с повторениями === |
| − | ''' | + | {{Определение |
| + | |definition='''Сочетания с повторениями''' (англ. ''combinations with repetitions'') — те же сочетания, только теперь даны <tex>n</tex> типов элементов, из которых нужно выбрать <tex>k</tex> элементов, причем элементов каждого типа неограниченное количество, и элементы одного типа должны стоять подряд друг за другом. | ||
| + | }} | ||
| + | В пример можно привести следующую задачу: имеется <tex>n</tex> пирожных. Сколько способов купить <tex>k</tex> пирожных? | ||
| − | === Разбиение === | + | === Разбиение на неупорядоченные слагаемые === |
| − | '''Разбиение''' множества <math>X</math> на ''' | + | {{Определение |
| + | |definition=[[Нахождение количества разбиений числа на слагаемые | '''Разбиение''' числа '''на неупорядоченные слагаемые''']] (англ. ''partition'') — представление числа <tex>n</tex> в виде суммы слагаемых. | ||
| + | }} | ||
| + | {{main|Нахождение количества разбиений числа на слагаемые}} | ||
| + | |||
| + | === Разбиение на подмножества === | ||
| + | {{Определение | ||
| + | |definition=[[Числа Стирлинга второго рода | '''Разбиение''' множества <math>X</math> '''на подмножества''']] (англ. ''partition of a set'') — семейство непустых множеств <math>\{U_{\alpha}\},{\alpha \in A}</math>, где <math>A</math> — некоторое множество индексов, если: | ||
# <math>U_{\alpha} \cap U_{\beta} = \emptyset</math> для любых <math>\alpha, \beta \in A</math>, таких что <math>\alpha \not= \beta</math>; | # <math>U_{\alpha} \cap U_{\beta} = \emptyset</math> для любых <math>\alpha, \beta \in A</math>, таких что <math>\alpha \not= \beta</math>; | ||
# <math>X = \bigcup\limits_{\alpha \in A} U_{\alpha}</math>. | # <math>X = \bigcup\limits_{\alpha \in A} U_{\alpha}</math>. | ||
| + | }} | ||
| + | {{main|Числа Стирлинга второго рода}} | ||
| + | |||
| + | == Число комбинаторных объектов == | ||
| + | {| class="wikitable" border = 1 | ||
| + | |'''Тип объекта'''||'''Число объектов''' | ||
| + | |- | ||
| + | |Битовые векторы||<tex>2^{n}</tex> | ||
| + | |- | ||
| + | |Перестановки||<tex>P_n = n!</tex> | ||
| + | |- | ||
| + | |Перестановки с повторениями||<tex dpi = "150">\frac{(k_1 + k_2 + \ldots + k_n)!}{k_1!k_2!\ldots k_n!}</tex> | ||
| + | |- | ||
| + | |Размещения||<tex dpi = "150">A^{k}_n = \frac{n!}{(n - k)!}</tex> | ||
| + | |- | ||
| + | |Размещения с повторениями||<tex>n^k</tex> | ||
| + | |- | ||
| + | |Сочетания||<tex dpi = "150">C^{k}_n = \frac{n!}{k!(n - k)!}</tex> | ||
| + | |- | ||
| + | |Сочетания с повторениями||<tex dpi = "150">\widetilde{C}^k_n = \frac{(n + k - 1)!}{k!(n - 1)!} = C^k_{n + k - 1}</tex> | ||
| + | |- | ||
| + | |Разбиение на неупорядоченные слагаемые||[[Нахождение количества разбиений числа на слагаемые | Нахождение количества разбиений числа на слагаемые]] | ||
| + | |- | ||
| + | |Разбиение на подмножества||[[Числа Стирлинга второго рода | Числа Стирлинга второго порядка]] | ||
| + | |} | ||
| + | |||
| + | ==Соответствующие доказательства== | ||
| + | {{ | ||
| + | Теорема | id=1 | ||
| + | |statement= | ||
| + | Число различных битовых векторов длины <tex>n</tex> равно <tex>2^{n}</tex>. | ||
| + | |||
| + | |proof= | ||
| + | Число битовых векторов {{---}} это частный случай [[#5 | размещения с повторениями]] <tex>2</tex> элементов по <tex>n</tex>. Таким образом, количество различных битовых векторов будет равно <tex>2^n</tex>. | ||
| + | }} | ||
| + | |||
| + | {{ | ||
| + | Теорема | id=2 | ||
| + | |statement= | ||
| + | Число различных перестановок из <tex>n</tex> элементов равно <tex>P_n = n!</tex> | ||
| + | |||
| + | |proof= | ||
| + | Перестановка {{---}} это частный случай [[#4 | размещения]] <tex>n</tex> элементов по <tex>k</tex> при <tex>k = n</tex>. Таким образом, количество различных перестановок будет равно <tex>n!</tex> | ||
| + | }} | ||
| + | |||
| + | {{ | ||
| + | Теорема | id=3 | ||
| + | |statement= | ||
| + | Число различных перестановок с повторениями из <tex>k</tex> элементов с <tex>n</tex> группами одинаковых элементов равно <tex>\overline{P_k} (k_1, k_2, \ldots, k_n) = \frac{(k_1 + k_2 + \ldots + k_n)!}{k_1!k_2!\ldots k_n!}</tex>, где <tex>k_i</tex> {{---}} это количество одинаковых элементов в <tex>i</tex>{{---}}ой группе. | ||
| + | |||
| + | |proof= | ||
| + | Пусть нужно найти количество перестановок с повторениями на множестве <tex>A</tex> из <tex>k</tex> элементов. Будем учитывать, что в этом множестве <tex>n</tex> групп одинаковых элементов. Количество перестановок из <tex>k</tex> элементов, не учитывая того факта, что элементы могут быть одинаковые, будет равно <tex>k!</tex>. | ||
| + | |||
| + | В каждой итоговой перестановке у нас будет несколько раз учитываться ситуации с одинаковыми элементами ровно столько раз, сколько можно получить перестановок из <tex>k_i</tex>. Таким образом количество перестановок с одинаковым первым элементом будет равно <tex>k_1!</tex>, для второго элемента {{---}} <tex>k_2!</tex>. Общее количество идентичных перестановок будет равно произведению данных факториалов. Итого одинаковых перестановок <tex>k_1! \cdot k_2! \cdot \ldots \cdot k_n!</tex>. Ответом будем являться частное количества всех перестановок и количества одинаковых. | ||
| + | Получаем, что итоговое количество равно <tex>\frac{k!}{k_1! \cdot k_2! \cdot \ldots \cdot k_n!} = \frac{(k_1 + k_2 + \ldots + k_n)!}{k_1! \cdot k_2! \cdot \ldots \cdot k_n!} </tex> | ||
| + | }} | ||
| + | |||
| + | {{ | ||
| + | Теорема | id=4 | ||
| + | |statement= | ||
| + | Число различных размещений из <tex>n</tex> элементов по <tex>k</tex> равно <tex>A^{k}_n = \frac{n!}{(n - k)!}</tex> | ||
| + | |||
| + | |proof= | ||
| + | |||
| + | Доказательство по индукции. База <tex>k = 1</tex>, тогда количество размещений из <tex>n</tex> по <tex>1</tex> равно <tex>n</tex>. | ||
| + | |||
| + | При <tex>k \geq 2</tex> воспользуемся правилом произведения. Выбрать первый элемент можно <tex>n</tex> различными способами. При каждом первом элементе, все что осталось образует размещение из оставшегося множества, то есть <tex>(n-1)</tex> элементов, по <tex>(k - 1)</tex>. Следовательно получаем рекуррентную формулу <tex>A_{n}^{k}=n \cdot A_{n-1}^{k-1}</tex>. Отсюда получаем <tex>A_{n}^{k} = n \cdot (n-1) \cdot \ldots \cdot (n-k+1) = \frac{n!}{(n-k)!}</tex> | ||
| + | }} | ||
| − | = | + | {{ |
| − | + | Теорема | id=5 | |
| + | |statement= | ||
| + | Число различных размещений с повторениями из <tex>n</tex> элементов по <tex>k</tex> равно <tex>\overline{A_n^k} = n^k</tex> | ||
| − | + | |proof= | |
| − | + | Докажем по индукции. База: <tex>k = 1</tex>. Тогда <tex> \overline{A_n^1} = n</tex>. | |
| − | <tex> | + | При <tex>k \geq 2</tex> воспользуемся правилом произведения. Выбрать первый элемент можно <tex>n</tex> различными способами. При каждом первом элементе, все что осталось образует размещение с повторениями из того же самого множества, то есть из n элементов, по <tex>(k - 1)</tex>. Следовательно получаем рекуррентную формулу <tex>\overline{A_n^k} = n \cdot \overline{A_{n}^{k-1}}</tex>. Отсюда получаем <tex>\overline{A_n^k}=n \cdot n \ldots = n^k </tex> |
| + | }} | ||
| − | <tex> | + | {{ |
| + | Теорема | id=6 | ||
| + | |statement= | ||
| + | Число различных сочетаний из <tex>n</tex> элементов по <tex>k</tex> равно <tex>C^{k}_n = \frac{n!}{k!(n - k)!}</tex> | ||
| − | + | |proof= | |
| − | + | Всего размещений из <tex>n</tex> элементов по <tex>k</tex> равно <tex>A_n^k = \frac{n!}{(n - k)!}</tex>. В каждом размещении выбраны <tex>k</tex> элементов из данного множества. Если игнорировать порядок этих выбранных <tex>k</tex> элементов, мы получим некоторые сочетания из данного множества по <tex>k</tex>. Другими словами, размещение с одним и тем же набором выбранных <tex>k</tex> элементов задают одно и то же сочетание по <tex>k</tex> элементов. | |
| − | |||
| − | == | + | Так как размещения с одним и тем же набором выбранных <tex>k</tex> элементов различаются только порядком элементов и число различных перестановок из <tex>k</tex> элементов равно <tex>k!</tex>, то итоговая формула будет равна <tex>C_n^k = \frac{A_n^k}{k!} = \frac{n!}{k!(n - k)!}</tex> |
| + | }} | ||
| + | |||
| + | {{ | ||
| + | Теорема | id=7 | ||
| + | |statement= | ||
| + | Число различных сочетаний с повторениями из <tex>n</tex> элементов по <tex>k</tex> равно <tex>\overline{C^k_n} = \frac{(n + k - 1)!}{k!(n - 1)!} = C^k_{n + k - 1}</tex> | ||
| + | |||
| + | |proof= | ||
| + | |||
| + | Рассмотрим двоичный вектор из <tex>(n+k-1)</tex> координат, в котором <tex>(n-1)</tex> нулей и <tex>k</tex> единиц. | ||
| + | |||
| + | Будем считать нули разделителями, которые делят этот вектор на <tex>n</tex> частей. | ||
| + | |||
| + | Тогда предположим, что число единиц в <tex>i</tex>{{---}}м блоке {{---}} это число элементов <tex>k_i</tex> в сочетании с повторением, которое соответствует этому вектору, где <tex>k_i</tex> {{---}} это элемент из изначального множества с номером i. | ||
| + | |||
| + | Пример: Если у нас есть набор элементов 1 1 2 2 3, то <tex>k_2</tex> = 2. | ||
| + | |||
| + | Получаем, что каждому сочетанию с повторениями из <tex>n</tex> по <tex>k</tex> соответствует некоторый вектор из нулей и единиц с <tex>(n+k-1)</tex> координатами, в котором <tex>(n-1)</tex> нулей. Также наоборот, по каждому такому вектору однозначно восстанавливается сочетание с повторением, ему соответствующее. Значит, число сочетаний с повторениями из <tex>n</tex> по <tex>k</tex> совпадает с числом таких векторов. | ||
| + | |||
| + | Таких векторов столько, сколько вариантов выбрать <tex>k</tex> координат, на которых должны стоять единицы из <tex>(n+k-1)</tex>. Таким образом, ответом будет являться число сочетаний из <tex>(n+k-1)</tex> по <tex>k</tex>. Тогда количество равно <tex> \overline{C_n^k} = C_{n+k-1}^{k}</tex> | ||
| + | }} | ||
| + | |||
| + | |||
| + | == См. также == | ||
| + | *[[Генерация комбинаторных объектов в лексикографическом порядке | Генерация комбинаторных объектов в лексикографическом порядке]] | ||
| + | *[[Получение следующего объекта | Получение следующего объекта]] | ||
| + | *[[Получение номера по объекту | Получение номера по объекту]] | ||
| + | *[[Получение объекта по номеру | Получение объекта по номеру]] | ||
| + | |||
| + | == Примечания == | ||
<references/> | <references/> | ||
| − | *[http://ru | + | |
| − | + | == Источники информации == | |
| + | * [http://hijos.ru/izuchenie-matematiki/algebra-10-klass/19-razmeshheniya-perestanovki-sochetaniya-s-povtoreniyami-formula-vklyucheniya-isklyucheniya/ Математика, которая мне нравится — Размещения, перестановки, сочетания с повторениями. Формула включения – исключения] | ||
| + | |||
[[Категория: Дискретная математика и алгоритмы]] | [[Категория: Дискретная математика и алгоритмы]] | ||
| − | |||
[[Категория: Комбинаторика ]] | [[Категория: Комбинаторика ]] | ||
| + | [[Категория: Комбинаторные объекты ]] | ||
Текущая версия на 19:27, 4 сентября 2022
| Определение: |
| Комбинаторные объекты (англ. combinatorial objects) — конечные множества, на элементы которых могут накладываться определённые ограничения, такие как: различимость или неразличимость элементов, возможность повторения одинаковых элементов и т. п. |
| Определение: |
| Если два комбинаторных объекта, различающихся только порядком элементов, считаются различными, то они называются упорядоченными (англ. ordered). |
Содержание
Примеры комбинаторных объектов
Битовые векторы
| Определение: |
| Битовые векторы (англ. bit vectors) — последовательность нулей и единиц заданной длины. |
Перестановки
| Определение: |
| Перестановки[1] (англ. permutations) — упорядоченный набор чисел , обычно трактуемый как биекция на множестве , которая числу ставит соответствие -й элемент из набора. |
Примером перестановки может служить задача о рассадке человек за стол по местам.
Перестановки с повторениями
| Определение: |
| Перестановки с повторениями (англ. permutations with repetitions) — те же перестановки, однако некоторые элементы могут встречаться несколько раз. |
В пример можно привести следующую задачу: имеется набор книг , каждая из которых имеется в экземплярах соответственно. Сколько существует способов переставить книги на полке?
Размещения
| Определение: |
| Размещение[2] (англ. arrangement) из по — упорядоченный набор из различных элементов некоторого -элементного множества. |
Примером размещения может служить задача о рассадке человек за стол по местам, где .
Размещения с повторениями
| Определение: |
| Размещение с повторениями (англ. arrangement with repetitions), составленное из данных элементов по — отображение множества первых натуральных чисел в данное множество . |
В пример можно привести следующую задачу: имеется книг, каждая в экземплярах. Сколькими способами может быть сделан выбор книг из числа данных?
Сочетания
| Определение: |
| Сочетания[3] (англ. combinations) из по — набор элементов, выбранных из данных элементов. |
Примером сочетания может служить задача о выборе книг из вариантов.
Сочетания с повторениями
| Определение: |
| Сочетания с повторениями (англ. combinations with repetitions) — те же сочетания, только теперь даны типов элементов, из которых нужно выбрать элементов, причем элементов каждого типа неограниченное количество, и элементы одного типа должны стоять подряд друг за другом. |
В пример можно привести следующую задачу: имеется пирожных. Сколько способов купить пирожных?
Разбиение на неупорядоченные слагаемые
| Определение: |
| Разбиение числа на неупорядоченные слагаемые (англ. partition) — представление числа в виде суммы слагаемых. |
Разбиение на подмножества
| Определение: |
Разбиение множества на подмножества (англ. partition of a set) — семейство непустых множеств , где — некоторое множество индексов, если:
|
Число комбинаторных объектов
| Тип объекта | Число объектов |
| Битовые векторы | |
| Перестановки | |
| Перестановки с повторениями | |
| Размещения | |
| Размещения с повторениями | |
| Сочетания | |
| Сочетания с повторениями | |
| Разбиение на неупорядоченные слагаемые | Нахождение количества разбиений числа на слагаемые |
| Разбиение на подмножества | Числа Стирлинга второго порядка |
Соответствующие доказательства
| Теорема: |
Число различных битовых векторов длины равно . |
| Доказательство: |
| Число битовых векторов — это частный случай размещения с повторениями элементов по . Таким образом, количество различных битовых векторов будет равно . |
| Теорема: |
Число различных перестановок из элементов равно |
| Доказательство: |
| Перестановка — это частный случай размещения элементов по при . Таким образом, количество различных перестановок будет равно |
| Теорема: |
Число различных перестановок с повторениями из элементов с группами одинаковых элементов равно , где — это количество одинаковых элементов в —ой группе. |
| Доказательство: |
|
Пусть нужно найти количество перестановок с повторениями на множестве из элементов. Будем учитывать, что в этом множестве групп одинаковых элементов. Количество перестановок из элементов, не учитывая того факта, что элементы могут быть одинаковые, будет равно . В каждой итоговой перестановке у нас будет несколько раз учитываться ситуации с одинаковыми элементами ровно столько раз, сколько можно получить перестановок из . Таким образом количество перестановок с одинаковым первым элементом будет равно , для второго элемента — . Общее количество идентичных перестановок будет равно произведению данных факториалов. Итого одинаковых перестановок . Ответом будем являться частное количества всех перестановок и количества одинаковых. Получаем, что итоговое количество равно |
| Теорема: |
Число различных размещений из элементов по равно |
| Доказательство: |
|
Доказательство по индукции. База , тогда количество размещений из по равно . При воспользуемся правилом произведения. Выбрать первый элемент можно различными способами. При каждом первом элементе, все что осталось образует размещение из оставшегося множества, то есть элементов, по . Следовательно получаем рекуррентную формулу . Отсюда получаем |
| Теорема: |
Число различных размещений с повторениями из элементов по равно |
| Доказательство: |
|
Докажем по индукции. База: . Тогда . При воспользуемся правилом произведения. Выбрать первый элемент можно различными способами. При каждом первом элементе, все что осталось образует размещение с повторениями из того же самого множества, то есть из n элементов, по . Следовательно получаем рекуррентную формулу . Отсюда получаем |
| Теорема: |
Число различных сочетаний из элементов по равно |
| Доказательство: |
|
Всего размещений из элементов по равно . В каждом размещении выбраны элементов из данного множества. Если игнорировать порядок этих выбранных элементов, мы получим некоторые сочетания из данного множества по . Другими словами, размещение с одним и тем же набором выбранных элементов задают одно и то же сочетание по элементов. Так как размещения с одним и тем же набором выбранных элементов различаются только порядком элементов и число различных перестановок из элементов равно , то итоговая формула будет равна |
| Теорема: |
Число различных сочетаний с повторениями из элементов по равно |
| Доказательство: |
|
Рассмотрим двоичный вектор из координат, в котором нулей и единиц. Будем считать нули разделителями, которые делят этот вектор на частей. Тогда предположим, что число единиц в —м блоке — это число элементов в сочетании с повторением, которое соответствует этому вектору, где — это элемент из изначального множества с номером i. Пример: Если у нас есть набор элементов 1 1 2 2 3, то = 2. Получаем, что каждому сочетанию с повторениями из по соответствует некоторый вектор из нулей и единиц с координатами, в котором нулей. Также наоборот, по каждому такому вектору однозначно восстанавливается сочетание с повторением, ему соответствующее. Значит, число сочетаний с повторениями из по совпадает с числом таких векторов. Таких векторов столько, сколько вариантов выбрать координат, на которых должны стоять единицы из . Таким образом, ответом будет являться число сочетаний из по . Тогда количество равно |
См. также
- Генерация комбинаторных объектов в лексикографическом порядке
- Получение следующего объекта
- Получение номера по объекту
- Получение объекта по номеру