       Re: k-permutations enumeration

• To: mathgroup at smc.vnet.net
• Subject: [mg116367] Re: k-permutations enumeration
• From: Daniel Lichtblau <danl at wolfram.com>
• Date: Sat, 12 Feb 2011 05:18:23 -0500 (EST)
• References: <ij0eaq\$9eo\$1@smc.vnet.net> <201102110914.EAA07802@smc.vnet.net>

```Ray Koopman wrote:
> On Feb 10, 2:23 am, Michal Kvasnicka <michal.kvasni... at gmail.com>
> wrote:
>> How can I find the number of k-permutations of n objects, where there
>> are x types of objects, and r1, r2, r3 ... rx 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
>> r1 = 4, r2 = 5, r3 = 8, r4 = 3
>>
>> Furthermore, if there isn't a straightforward solution: how
>> efficiently can this problem be solved? Any Mathematica code?
>
> Please disregard my previous post, which counted only
> "words" containing all of the x different "letters".
>
> k = 15; r = {4,5,8,3};
> Tr[Multinomial@@@Select[Tuples[Range[0,#]&/@r],Tr@#==k&]]
>
> 187957770

Another approach is to use an exponential generating function. It seems
to be fairly fast.

multvals = {4, 5, 8, 3};
select = 15;
factors = Map[summand[x, #] &, multvals];
Coefficient[Factorial[select]*Times @@ factors, x^select]

187957770

Daniel Lichtblau
Wolfram Research

```

• Prev by Date: Re: 3D surface plots - non deletion of data inside undesirable Range
• Next by Date: Re: on importing/exporting binary files
• Previous by thread: Re: k-permutations enumeration
• Next by thread: Re: k-permutations enumeration