详见 An Element of Greatest Order 65页第四章节
对应单位群
对应两群半直积:
对应两群半直积:
所以魔方群
其阶为
任何公式周期必须是阶的因子, 所以不可能有周期为13的公式
然后跳过很长一段思考过程, 最终构造了:
RubikMap = <| "U" -> Cycles @ {{ 1 , 3 , 8 , 6 }, { 2 , 5 , 7 , 4 }, { 9 , 33 , 25 , 17 }, { 10 , 34 , 26 , 18 }, { 11 , 35 , 27 , 19 }}, "D" -> Cycles @ {{ 14 , 22 , 30 , 38 }, { 15 , 23 , 31 , 39 }, { 16 , 24 , 32 , 40 }, { 41 , 43 , 48 , 46 }, { 42 , 45 , 47 , 44 }}, "L" -> Cycles @ {{ 1 , 17 , 41 , 40 }, { 4 , 20 , 44 , 37 }, { 6 , 22 , 46 , 35 }, { 9 , 11 , 16 , 14 }, { 10 , 13 , 15 , 12 }}, "R" -> Cycles @ {{ 3 , 38 , 43 , 19 }, { 5 , 36 , 45 , 21 }, { 8 , 33 , 48 , 24 }, { 25 , 27 , 32 , 30 }, { 26 , 29 , 31 , 28 }}, "B" -> Cycles @ {{ 1 , 14 , 48 , 27 }, { 2 , 12 , 47 , 29 }, { 3 , 9 , 46 , 32 }, { 33 , 35 , 40 , 38 }, { 34 , 37 , 39 , 36 }}, "F" -> Cycles @ {{ 6 , 25 , 43 , 16 }, { 7 , 28 , 42 , 13 }, { 8 , 30 , 41 , 11 }, { 17 , 19 , 24 , 22 }, { 18 , 21 , 23 , 20 }} |> ; RubikPeriod [ input_String ] := Apply [ LCM , Length /@ First @ RubikCycle [ input ]]; RubikCycle [ input_String ] := GeneralUtilities` Scope [ (*doMap[O_String]:=RubikMap@O;*) (*doMap[inverse[O_]]:=InversePermutation[RubikMap@O];*) (*doMap[double[O_]]:=PermutationPower[RubikMap@O,2];*) (*sp={{a_,"'"}[RuleDelayed]inverse@a,{a_,"2"}[RuleDelayed]double@a};*) (*seq=SequenceReplace[StringPartition[StringDelete[ToUpperCase@input," "],1],sp];*) (*Apply[PermutationProduct,doMap/@seq]*) sp = {{ a_ , "'" } :> { a , a , a }, { a_ , "2" } :> { a , a }}; seq = SequenceReplace [ StringPartition [ StringDelete [ ToUpperCase @ input , " " ], 1 ], sp ]; Apply [ PermutationProduct , RubikMap /@ Flatten @ seq ] ]; perm = RubikCycle @ "RU2D'BD'" ; Echo [ Apply [ LCM , Length /@ First @ perm ], "Period: " ]; rules [ cycle_ ] := Thread [ DirectedEdge [ cycle , RotateLeft [ cycle ]]]; Graph [ Flatten [ rules /@ First [ perm ]], VertexLabels -> Placed [ "Name" , Center ], VertexSize -> 0.6 ]
可以验证
Update20190224:
更新一些文献上没有的结果
接下来的高阶魔方最大周期都不会超过 5354228880
三阶魔方群元素的阶最大为1260,其中一个公式为: 。
注:魔方群的元素为“公式”。元素的阶就是题目所说的周期。