2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Число сочетаний из n по k с тождественными элементами
Сообщение16.10.2019, 16:38 


17/10/16
4915
Хорошо известны две комбинаторные формулы: $C^k_n$ и $\bar{C}^k_n$.

Первая дает число разных сочетаний размера $k$ в случае, когда у нас $n$ типов объектов, и все в одном экземпляре.
Вторая дает число разных сочетаний размера $k$ в случае, когда у нас $n$ типов объектов, и все в неограниченном количестве.

На практике часто встречается промежуточный случай, когда есть $n$ типов объектов, причем объектов одного типа одно количество, другого типа - другое и т.д. Как получить число сочетаний из $n$ типов объектов по $k$, если известны количества $m_1...m_n$ объектов каждого типа?

Например, возьмем множество объектов $2, 2, 2, 3, 3, 5$. Здесь $n=3$, $m_1=3$, $m_2=2$, $m_3=1$. Допустим, мы хотим найти количество всех различных сочетаний по $3$ ($k=3$). Они будут такими:

$2, 2, 2$
$2, 2, 3$
$2, 2, 5$
$2, 3, 3$
$2, 3, 5$
$3, 3, 5$

Какая формула описывает их количество в общем случае?

Предположим, что $m_1...m_n$ отсортированы по возрастанию.
Очевидно, что если $m_1>k$, то задача сводится к неограниченному случаю $\bar{C}^k_n$.
Если $m_1<k$, но $m_1+m_2 \geqslant k$ то можно из неограниченного случая $\bar{C}^k_n$ вычесть число комбинаций, в которых объект с количеством $m_1$ используется более $m_1$ раз, т.е. $\bar{C}^k_n - \bar{C}^1_{n-1} - \bar{C}^2_{n-1}…- \bar{C}^{k-m_1}_{n-1}$. Такое же вычитание можно сделать и для $m_2$, если одновременно $m_1 <k$, $m_2<k$, но $m_1+m_2 \geqslant k$
Но если суммарное количество обьектов двух (а тем более нескольких) самых малочисленных типов слишком мало, т.е. $m_1 +m_2<k$, то просто так вычесть независимо все лишние комбинации отдельно для $m_1$ и отдельно для $m_2$ не получается. Некоторые комбинации удаляются дважды. Например, если применить этот принцип к задаче выбора четырех разных объектов из набора $2, 2, 2, 3, 4, 5, 5, 5$ то "запрещенная" комбинация $3, 3, 4, 4$ вычитается два раза отдельно по $3$ и отдельно по $4$.

 Профиль  
                  
 
 Posted automatically
Сообщение16.10.2019, 18:07 


20/03/14
12041
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
по следующим причинам:


- отсутствуют собственные содержательные попытки решения задач(и).

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 Профиль  
                  
 
 Posted automatically
Сообщение24.10.2019, 16:45 


20/03/14
12041
 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение25.10.2019, 01:39 
Заслуженный участник


27/04/09
28128
Люди избегают рекуррентных соотношений, интересно почему.

Давайте обозначим интересующее количество $C(m_1,\ldots,m_s; k)$ и будем сокращать подпоследовательности $m_i,\ldots,m_j$ как $\overline m$. Тогда мы можем получить такую связь: $$C(\overline m, m'; k) = C(\overline m; k) + C(\overline m; k-1) + \ldots + C(\overline m; k-\min(m', k)),$$а именно: получить сочетание из набора $\overline m, m'$ элементов с $k$ элементами можно, взяв сочетание из набора $\overline m$ с $k$ элементами, или взяв сочетание из того набора с $k-1$ элементами и ещё один элемент из кучки $m'$ оставшихся неразличимых, и т. д. до сочетания из $k-\min(m', k)$ элементов из $\overline m$ и наибольшего возможного количества элементов из последней кучки, что и есть $\min(m', k)$.

    В общем случае мы можем даже записать
    \small$${C(\overline m, \overline m'; k) = \sum_{i\in\mathbb Z}C(\overline m; i)C(\overline m'; k-i),}$$
    имея в виду, что сочетания с отрицательным числом элементов не существуют, а с нулевым их всегда ровно одна штука; \small${\overline m, \overline m'}$ — две кучки элементов, не содержащие одновременно элементы одинакового типа. Такая форма может тоже оказаться полезной, по крайней мере она симметричнее предыдущей, но для практических вычислений предыдущей достаточно.

Начальным условием будет $C(m; k) = (0\leqslant k\leqslant m)\mathbin? 1 : 0$ — мы можем выбрать единственным способом столько неразличимых элементов, сколько у нас в достатке, но не больше, и не отрицательное число.

Вот теперь можно попробовать раскрутить эти соотношения на что-то более простое. Можно например рассмотреть сначала ровно две группы, потом три группы, потом четыре и т. д.. Для двух групп мы получим из первого равенства, что $$C(m_1, m_2; k) = C(m_1; k) + \ldots + C(m_1, k-\min(k, m_2)),$$где ненулевые слагаемые начинаются с $C(m_1; m_1)$, каждое ненулевое слагаемое — единица, а всего их в формуле $\min(k, m_2) + 1$. Из всего этого, если это изложить более аккуратно, имеем в конечном итоге $$C(m_1, m_2; k) = k + 1 - \max(k - m_1, 0) - \max(k - m_2, 0) - \max(-k - 1, 0) + \max(k - 1 - m_1 - m_2, 0),$$где последние два слагаемых можно выкинуть, если $0\leqslant k\leqslant m_1+m_2$.

От максимумов или подобного им должно быть трудновато избавиться, потому что $C(\overline m; k)$ — это число решений системы линейных неравенств $0\leqslant k_i\leqslant m_i$ на гиперплоскости $\sum_i k_i = k$.

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение25.10.2019, 11:43 
Заслуженный участник


03/01/09
1711
москва
Общую формулу получить вряд ли получится, но для любого набора элементов можно построить производящую функцию. Покажем это на примере набора элементов $2,2,2,3,3,5$. Производящая функция будет иметь вид:$P(x)=(1+x+x^2+x^3)(1+x+x^2)(1+x)$. Способ построения производящей функции очевиден. Число сочетаний по 3 равно коэффициенту при $x^3$ в полиноме $P(x)$.

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение25.10.2019, 18:16 


17/10/16
4915
arseniiv
Если я правильно понял, итерационная схема для примера $2, 2, 2, 3, 3, 5$ получается такая:
Изображение
Каждое $C$ верхнего уровня $n$ представляется, как сумма $C$ на $n-1$ уровне, причем в этой сумме $k$ пробегает значения от $k$ до $\max (0, k-m_i)$ , где $k$ - это аргумент $C$ предыдущего уровня, $m_i$ - количество элементов типа $i$ в исходном множестве, которые мы отбрасываем на данном переходе. На нижнем уровне $n=1$ все $C$ просто равны $1$.
Поскольку результат не должен зависеть от порядка $m_i$, которые мы отбрасываем на каждом шаге, я попробовал сначала порядок $m_i=1, 2, 3$, а потом наоборот $m_i=3, 2, 1$. Получается одно и то же, но во втором случае правила для $k$ более сложные (я их не соблюдал, поэтому просто вычеркнул случаи, где $k>m$ уже в самом конце). Проще работать с $m_i$, сортированными в порядке возрастания.

mihiv
Отличное решение. Как я понимаю, число скобок - это число разных типов объектов, максимальная степень в каждой скобке - это количество объектов данного типа. Раскрытие скобок дает количества сразу всех сочетаний размером $k=0...\sum\limits_{i}^{n}m_i$, как коэффициент при $k$-ой степени.

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение26.10.2019, 00:00 
Заслуженный участник


27/04/09
28128
sergey zhukov
Да, вы всё правильно понимаете в обоих случаях.


Да, почему-то забыл такую красивую производящую функцию для этого случая, хотя когда-то сталкивался. :| Зато ещё не поздно порадовать обобщением: если элементов какого-то сорта неограниченное количество, можно вместо соответствующей скобки взять ряд $1 + x + x^2 + \ldots$; результатом в целом будет тоже не полином, а формальный ряд, но с ними работать не сильно сложнее.

Вообще производящие функции часто облагораживают найденные рекуррентности (и потом уже из них можно найти что-то замкнутое, но здесь вот не судьба), и формула в фрагменте мелким шрифтом вообще говоря так и просится (она как раз дала бы (это видно сейчас, но не вспомнилось вчера), что п. ф. для $C(\overline m, \overline m')$ — произведение п. ф. для $C(\overline m)$ и $C(\overline m')$; а выражение для $C(m)$ уже дало бы многочлен $1 + x + \ldots + x^m$), но и поздно уже это делать, когда п. ф. найдена, и найти её с нуля по-моему даже проще, чем писать то, что я писал.

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение26.10.2019, 01:17 


05/09/16
12114
mihiv в сообщении #1422335 писал(а):
Покажем это на примере набора элементов $2,2,2,3,3,5$. Производящая функция будет иметь вид:$P(x)=(1+x+x^2+x^3)(1+x+x^2)(1+x)$. Способ построения производящей функции очевиден.

Гениально. Но раскрытие скобок все равно похоже на перебор. Или есть таки путь покороче?

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение26.10.2019, 01:48 
Заслуженный участник


27/04/09
28128
Да, чтобы узнать коэффициент при одной степени, эффективно мы будем считать по тем рекуррентным формулам — как минимум делать свёртки маленьких последовательностей, задаваемых отдельными множителями, — но если мы уже записали функцию алгебраически, то часть вычислений мы уже сделали и при вычислении коэффициентов повторять каждый раз не будем, ну и вычислить сразу все их выйдет довольно удобно, а то и быстрее, если приделать векторизацию или что там.

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение26.10.2019, 14:44 
Заслуженный участник


03/01/09
1711
москва
Можно еще немного сократить вычисления, если умножить и поделить каждую скобку на $(1-x)$ тогда каждая скобка сведется к двум слагаемым и все выражение умножится на производную порядка $(n-1)$ от геометрической прогрессии.

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение27.10.2019, 00:02 


17/10/16
4915
mihiv

Я так понял, что для нашего случая это:
$$(1+x+x^2+x^3)(1+x+x^2)(1+x)=(1-x^4)(1-x^3)(1+x) \frac{(1-x)}{(1-x)^3}= (1-x^4)(1-x^3)(1+x)\frac{1}{2}( \frac{(1-x^3)}{(1-x)})^{\prime \prime}=$$
$$=(1-x^4)(1-x^3)(1+x)\frac{1}{2}(1+x+x^2+x^3)^{\prime \prime}=(1-x^4)(1-x^3)(1+x)(1+3x)$$

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение27.10.2019, 00:21 


05/09/16
12114
sergey zhukov
Это зачем? Просто раскройте скобки. Коэффициенты при степенях будут искомыми количествами сочетаний для $k$ равных показателям степеней.

-- 27.10.2019, 00:26 --

$(1+x+x^2+x^3)(1+x+x^2)(1+x)=1 x^0+ 3 x ^1+ 5 x^2 + 6 x^3 + 5 x^4 + 3 x^5 + 1x^6$

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение27.10.2019, 00:47 


17/10/16
4915
wrest
В случае большого числа слагаемых в каждой скобке вместо прямого раскрытия проще превратить задачу в раскрытие скобок, в каждой из которых только два слагаемых, и эти скобки умножены на производную порядка $(n-1)$ от прогрессии $1+x^2+x^3...x^n$. Производную просто найти, и она добавляет еще одну скобку с двумя слагаемыми. Это хорошо работает в частных случаях.

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение27.10.2019, 01:13 
Заслуженный участник


27/04/09
28128
Ненене, $(1-x)^{-3} = 1 + 3x + 6x^2 + 10x^3 + \ldots$ — п. ф. треугольных чисел, это бесконечный ряд. И зря вы не перемножили $(1 + x)(1 - x)$ как две первых скобки (наверно). Прийти к треугольным числам можно и через умножение (свёртка последовательности единиц дважды даёт $1,2,3,\ldots$, а трижды уже частичные суммы этой), и через дифференцирование, что в данном единственном случае даст (с точностью до факториала) то же. (Дифференцирование п. ф. умножает элементы последовательности $a_n, n\geqslant0$ на $n$, а потом выкидывая первый член последовательности.)

 Профиль  
                  
 
 Re: Число сочетаний из n по k с тождественными элементами
Сообщение27.10.2019, 11:09 


17/10/16
4915
Да, я там неправильно производную вычислил. Даже не заметил, что степень многочлена выросла на 3.

Мне ясно только, что

$$(1+x+x^2+x^3)(1+x+x^2)(1+x)=(1-x^4)(1-x^3)(1-x^2)\frac{(1-x)^3}{(1-x)^3}$$
И что
$$\frac{(1-x)^3}{(1-x)^3}=\frac{1}{2}\Big (\frac{1-x^3}{1-x}\Big )^{\prime \prime}$$

Не могу понять, как это помогает сократить вычисления?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: ET


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group