Имеется некоторый вектор длины

с различимыми, но потенциально повторяющимися элементами, например

, то есть

различных вида элементов, каждого из которых по две штуки, которые в свою очередь неотличимы между собой. Необходимо найти число уникальных размещений и сочетаний длины

на этом векторе
К сожалению, готовой формулы для числа уникальных размещений и сочетаний на векторе с повторениями, нигде не удается найти. Есть формула для перестановок в повторами (факториал суммы делить на произведение факториалов), но формулы для размещений и сочетаний с повторами совсем о другом (о выборе с возвратом), а не векторе элементов с повторами
Более-менее понятен ручной подход на основе правила произведения. К примеру, для вектора

уникальные размещения длиной

можно рассчитать так: в первую позицию можно разместить любой из

различимых элементов. Во вторую позицию есть один способ

разместить такой же элемент, как в первую, и

способа

разместить другой элемент. В случае

в третью позицию можно разместить любой из

оставшихся, поскольку первые две позиции заняты одинаковыми элементами. В случае

есть

способа разместить третью позицию. Получается

Вопрос: есть ли готовая формула, зависящая от исходного вектора (число элементов

и их повторов

) и от длины

целевого сочетания или размещения? Спасибо