Counting
- To: mathgroup at smc.vnet.net
- Subject: [mg114850] Counting
- From: Yaroslav Bulatov <yaroslavvb at gmail.com>
- Date: Mon, 20 Dec 2010 00:40:07 -0500 (EST)
I'd like to count the number of permutations of {2, 2, 2, 2, 2, 2, 2,
1, 1, 0, 0, 0, 0, 0, 0, 0} that are not equivalent under the symmetry
of DihedralGroup[16]. In other words, count the ways of assigning
those integers to vertices of a 4 dimensional cube.
This takes about a minute in another systme using "OrbitsDomain" command. My
Mathematica approach is below, however it doesn't finish within 10
minutes, any advice how to make it tractable?
nonequivalentPermutations[lst_, group_] := (
removeEquivalent[{}] := {};
removeEquivalent[list_] := (
Sow[First[list]];
equivalents = Permute[First[list], #] & /@ GroupElements[group];
DeleteCases[list, Alternatives @@ equivalents]
);
reaped = Reap@FixedPoint[removeEquivalent, Permutations@lst];
reaped[[2, 1]] // Length
);
nonequivalentPermutations[{2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0,
0, 0}, DihedralGroup[16]]
- Follow-Ups:
- Re: Counting
- From: Leonid Shifrin <lshifr@gmail.com>
- Re: Counting
- From: Leonid Shifrin <lshifr@gmail.com>
- Re: Counting
- From: Leonid Shifrin <lshifr@gmail.com>
- Re: Counting