Permutations with identical objects

How can I find the number of $k$-permutations of $n$ objects, where there are $x$ types of objects, and $r_1, r_2, r_3, \cdots , r_x$ give the number of each type of object?

Example:

I have 20 letters from the alphabet. There are some duplicates – 4 of them are a, 5 of them are b, 8 of them are c, and 3 are d. How many unique 15-letter permutations can I make?

In the example:

$n = 20$

$k = 15$

$x = 4$

$r_1 = 4 \quad r_2 = 5 \quad r_3 = 8 \quad r_4 = 3$

Some background…

I was originally going to solve this problem in order to solve a simpler problem, but I managed to find a simpler solution to that problem instead. Now I’m still looking for the solution to this more general problem out of interest.


Edit:

I’ve done some more work on this problem but haven’t really come up with anything useful. Intuition tells me that as Douglas suggests below there will probably not be an easy solution. However, I haven’t been able to prove that for sure – does anyone else have any ideas?

Edit:

I’ve now re-asked this question (here) on MO.

Solutions Collecting From Web of "Permutations with identical objects"

There’s probably not going to be an easy way to do this… Consider two different examples of 15-letter “permutations”. Then the number of permutations with that multiset of digits depends on the proportions of the chosen digits.

If you really want to do this, you can sum $k!/(s(1)! s(2)! \cdots s(x)!)$ (called the mulitnomial coefficient) over all partitions of $s(1)+s(2)+ \cdots +s(x)=k$ [in this partition s(i) is allowed to be zero and order is important] such that $s(i) \leq r(i)$ for all i. The part s(i) says you have s(i) copies of the i-th letter. The number of permutations with s(i) i-th letters is given as above, by the Orbit Stabiliser Theorem.

Although, this is only one step better than the caveman’s counting formula: sum_P 1 where P is the set of permutations you want to count. I.e. just count them one-by-one.

EDIT: While I’m making a few touch-ups, here’s GAP code that implements the above formula.

NrPermIdent:=function(k,T)
  local PSet,x;
  x:=Size(T);
  PSet:=Filtered(OrderedPartitions(k+x,x)-1,p->ForAll([1..x],i->p[i]<=T[i]));
  return Sum(PSet,p->Factorial(k)/Product(p,i->Factorial(i)));
end;;

where T is a list of bounds and k is the number of terms in the partition.

For example:

gap> NrPermIdent(15,[4,5,8,3]);
187957770

As another indication that finding a simple formula for these numbers is not going to be easy, observe that NrPermIdent(n,[n,k]) is equal to $\sum_{0 \leq i \leq k} {n \choose k}$ (which is considered a difficult sum to find — see: https://mathoverflow.net/questions/17202/). I remember reading somewhere (most likely in A=B) that you can prove there is no “closed-form” solution for this.

There are 20!/4!5!8!3! arrangements of the 20 alphabets. Consider the action of $S_5$ on the arrangements by permuting the last 5 digits. You want to compute the number of orbits. You can then try to do it by Burnside’s formula. It is not difficult to do it at least for this case, since if a permutation of $S_5$ fixes an arrangement, it means that each cycle of the permutation corresponds to a color.

For the general case, I suspect that Polya’s enumeration theorem can do it, though I’m not certain.