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.

Reply via email to