Предположим, у нас есть ряд n
неотличимых объектов, скажем, красных шаров.Сколько способов мы можем разделить их на k
непустые группы?Это довольно легко, правда?Первая группа начинается с первого объекта, а каждая другая группа должна начинаться с какого-то другого объекта.Таким образом, мы можем построить раздел, выбрав первый объект и k-1
из n-1
оставшихся объектов, что мы можем сделать C(n-1, k-1)
различными способами.
Теперь предположим, что у нас есть еще одна строка m
неразличимые объекты, скажем, синие шары, и мы хотим разделить их на j
групп.Но это точно та же проблема, и решение должно быть C(m-1, j-1)
.
ОК, теперь предположим, что мы хотим построить ряд объектов, из которых n
красного и m
синего, вкоторых в общей сложности c
групп, чередующихся между красным и синим.Теперь есть две возможности:
Строка начнется с красного шара.Если c
чётно, то будут c/2
красные группы с чередованием c/2
синих групп.Если c
нечетно, будет больше одной красной группы, чем синей группы, поэтому будет ceil(c/2)
красных групп и floor(c/2)
синих групп.(Если c
четное, то и floor(c/2)
, и ceil(c/2)
равны c/2
. Таким образом, мы можем использовать формулы floor и ceil в обоих случаях.)
В любом случае мы можем разделитькрасные шары в группы и синие шары в группы независимо, а затем чередовать их.Таким образом, существует C(n - 1, ceil(c/2) - 1) × C(m - 1, floor(c/2) - 1)
возможных договоренностей.
Строка начнется с синего шара.Точно такой же анализ применяется, за исключением того, что n
и m
поменялись местами.
Таким образом, общее количество договоренностей:
C(n - 1, ceil(c/2) - 1) × C(m - 1, floor(c/2) - 1) +
C(n - 1, floor(c/2) - 1) × C(m - 1, ceil(c/2) - 1)
Это простопереписывание вашей задачи, в которой было k
единиц и n-k
нулей, с c-1
переходами (что приводит к c
группам).Я оставлю оставшийся шаг алгебры читателю (а также упрощение для нечетного числа групп).