Re: Arrangements
- To: mathgroup at smc.vnet.net
- Subject: [mg108937] Re: Arrangements
- From: Ray Koopman <koopman at sfu.ca>
- Date: Wed, 7 Apr 2010 07:26:25 -0400 (EDT)
- References: <hpf5iu$orh$1@smc.vnet.net>
On Apr 6, 4:23 am, John <j... at lehigh.edu> wrote:
> Google 6, Windows-Xp
>
> The number of different arrangements of sixteen symbols -- eight
> letters A and eight letters B -- is Binomial[16,8]=12870. Is there a
> command that will generate all 12870 arrangements one at a time
> without duplication? Any order is acceptable.
>
> I used RandomSample[Range[16]] to select a random permutation of
> sixteen different symbols. Assigning the letter A to the first eight
> numbers in the random permutation and the letter B to the last eight
> letters in the permutation created a randomly selected arrangement.
> Awkward, but it works because Binomial[2n,n](n!)(n!)=(2n)!).
>
> John
If you really do want them one at at time instead of all at once
then NextKSubset will give you the positions of the A's (or B's).
Here's a toy example for 2 A's and 2 B's.
s = {1,2}
s = NextKSubset[{1,2,3,4}, s]
s = NextKSubset[{1,2,3,4}, s]
s = NextKSubset[{1,2,3,4}, s]
s = NextKSubset[{1,2,3,4}, s]
s = NextKSubset[{1,2,3,4}, s]
s = NextKSubset[{1,2,3,4}, s]
{1,2}
{1,3}
{1,4}
{2,3}
{2,4}
{3,4}
{1,2}