# Calculating Rubiks $2 \times 2 \times 2$ Permutation using Cycles

The help page of PermutationGroup shows a neat example on calculating the permutations of a $$3\times 3\times 3$$:

rot1 = Cycles[{{1, 3, 8, 6}, {2, 5, 7, 4}, {9, 48, 15, 12}, {10, 47,
16, 13}, {11, 46, 17, 14}}];
rot2 = Cycles[{{6, 15, 35, 26}, {7, 22, 34, 19}, {8, 30, 33, 11}, {12,
14, 29, 27}, {13, 21, 28, 20}}];
rot3 = Cycles[{{1, 12, 33, 41}, {4, 20, 36, 44}, {6, 27, 38, 46}, {9,
11, 26, 24}, {10, 19, 25, 18}}];
rot4 = Cycles[{{1, 24, 40, 17}, {2, 18, 39, 23}, {3, 9, 38, 32}, {41,
43, 48, 46}, {42, 45, 47, 44}}];
rot5 = Cycles[{{3, 43, 35, 14}, {5, 45, 37, 21}, {8, 48, 40, 29}, {15,
17, 32, 30}, {16, 23, 31, 22}}];
rot6 = Cycles[{{24, 27, 30, 43}, {25, 28, 31, 42}, {26, 29, 32,
41}, {33, 35, 40, 38}, {34, 37, 39, 36}}];
RubikGroup = PermutationGroup[{rot1, rot2, rot3, rot4, rot5, rot6}];


I am looking to calculate the permutations of a $$2\times 2\times 2$$ cube like in the example above. I created a 2D $$2\times 2\times 2$$ cube and wrote down what I think are the basic rotation cycles. But the returned permutations are way too many. What am I missing?

rot1 = Cycles[{{1, 2, 4, 3}, {5, 24, 9, 7}, {6, 23, 10, 8}}];
rot2 = Cycles[{{21, 22, 24, 23}, {1, 10, 20, 11}, {2, 16, 19, 5}}];
rot3 = Cycles[{{11, 5, 6, 12}, {1, 7, 19, 21}, {3, 13, 17, 23}}];
rot4 = Cycles[{{7, 8, 13, 14}, {3, 9, 18, 12}, {4, 15, 17, 6}}];
rot5 = Cycles[{{10, 16, 15, 9}, {2, 8, 18, 22}, {4, 14, 20, 24}}];
rot6 = Cycles[{{20, 19, 17, 18}, {16, 21, 12, 14}, {15, 22, 11, 13}}];
RubikGroup2x2x2 = PermutationGroup[{rot1, rot2, rot3, rot4, rot5, rot6}];
GroupOrder[RubikGroup2x2x2]


Out: $$620,448,401,733,239,439,360,000$$

It should be $$3,674,160$$ for a $$2\times 2\times 2$$ cube.

I think some of the rotations must be corrected:

rot1 = Cycles[{{1, 2, 4, 3}, {5, 24, 9, 7}, {6, 23, 10, 8}}];
rot2 = Cycles[{{21, 22, 24, 23}, {1, 11, 20, 10}, {2, 5, 19, 16}}];
rot3 = Cycles[{{11, 5, 6, 12}, {1, 7, 17, 21}, {3, 13, 19, 23}}];
rot4 = Cycles[{{7, 8, 14, 13}, {3, 9, 18, 12}, {4, 15, 17, 6}}];
rot5 = Cycles[{{10, 16, 15, 9}, {2, 22, 18, 8}, {4, 24, 20, 14}}];
rot6 = Cycles[{{20, 19, 17, 18}, {16, 21, 12, 14}, {15, 22, 11, 13}}];
RubikGroup2x2x2 = PermutationGroup[{rot1, rot2, rot3, rot4, rot5, rot6}];
GroupOrder[RubikGroup2x2x2]
(* 88179840 *)


Then that number must be divided by 24 (the number of rotational symmetries of a cube) because there are no facelets that can be used for orientation, as the central facelets of the 3x3x3 cube are used.

% / 24
(* 3674160 *)


Alternatively, fix one of the facelets (say 1) and compute the order of the stabilizer group of 1, i.e., the group of permutations that do not move 1:

GroupStabilizer[RubikGroup2x2x2, {1}] // GroupOrder
(* 3674160 *)

• Thank you, the key was the rotational symmetries!
– Tino
Commented Apr 27, 2020 at 19:10