David, could you entertain a question here: I wrote a routine to generate permutations of an nxn Rubik's cube. I enter into a PermutationGroup the permutation of the faces after these standard rotations:
1) cw rotation of cube from front 2) cw rotation of cube from top 3) n//2 + n%2 cw slice rotations from the front (e.g. just the front 1/nth of the cube, then the 2/nth slice of the cube, ..., until the middle or the one before the middle). I checked with an appropriately numbered tissue box that the right permutations are being returned. And these seem like they should be a sufficient basis for obtaining any orientation of the cube. But when I check the order I find: >>> from sympy.combinatorics import * >>> for i in range(1, 4): ... print i, RubikGroup(i).order() ... 1 24 2 88179840 3 1038048078587756544000 >>> RubikGroup(4).order() 43252003274489856000 (and if I use the generators my routine generates, recursion error prevents the order from being computed) Is there any easy way that you can explain to me why the 3x3's order is larger than the 4's when giving those particular permutations? Is this just a suboptimal group? What permutations make the optimal group? With the code I have I can construct the permutation for any sequence of turns that should be in the optimal group. -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
