Re: How to construct all possible orderings
- To: mathgroup at smc.vnet.net
- Subject: [mg15647] Re: [mg15588] How to construct all possible orderings
- From: BobHanlon at aol.com
- Date: Sat, 30 Jan 1999 04:28:43 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 1/28/99 5:42:52 AM, ccarreto at ipg.pt writes:
>I am trying to construct all possible orderings of for example 3
>elements, where each element can be A, B or C.
>
>The result will be something like this: AAA
>AAB
>AAC
>ABA
>. . .
>CCC
>
>How can I do this?
>
Carlos,
orderings[x_?VectorQ] := Module[{len = Length[x]},
Flatten[Outer[List,Sequence @@ Table[x, {len}]],
len-1]]
orderings[{A, B, C}]
{{A, A, A}, {A, A, B}, {A, A, C}, {A, B, A}, {A, B, B},
{A, B, C}, {A, C, A}, {A, C, B}, {A, C, C}, {B, A, A},
{B, A, B}, {B, A, C}, {B, B, A}, {B, B, B}, {B, B, C},
{B, C, A}, {B, C, B}, {B, C, C}, {C, A, A}, {C, A, B},
{C, A, C}, {C, B, A}, {C, B, B}, {C, B, C}, {C, C, A},
{C, C, B}, {C, C, C}}
Table[{len = Length[orderings[Range[k]]], len == k^k},
{k, 6}]
{{1, True}, {4, True}, {27, True}, {256, True},
{3125, True}, {46656, True}}
Bob Hanlon