Re: How to construct all possible orderings
- To: mathgroup at smc.vnet.net
- Subject: [mg15649] Re: How to construct all possible orderings
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Sat, 30 Jan 1999 04:28:44 -0500 (EST)
- Organization: University of Western Australia
- References: <78patb$ctc@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Carlos Carreto wrote:
> 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
Here is one way using Distribute:
In[1]:= Distribute[Table[{"A", "B", "C"}, {3}], List]
Out[1]=
{{"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"}}
If you want the result as a text string, you can use StringJoin:
In[2]:= Apply[StringJoin, %, {1}]
Out[2]=
{"AAA", "AAB", "AAC", "ABA", "ABB", "ABC", "ACA", "ACB", "ACC",
"BAA", "BAB", "BAC", "BBA", "BBB", "BBC", "BCA", "BCB", "BCC",
"CAA", "CAB", "CAC", "CBA", "CBB", "CBC", "CCA", "CCB", "CCC"}
Cheers,
Paul
____________________________________________________________________
Paul Abbott Phone: +61-8-9380-2734
Department of Physics Fax: +61-8-9380-1014
The University of Western Australia Nedlands WA 6907
mailto:paul at physics.uwa.edu.au AUSTRALIA
http://www.physics.uwa.edu.au/~paul
God IS a weakly left-handed dice player
____________________________________________________________________