8岁“魔”童打破世界纪录,难道他掌握了群论的终极奥义?
来源:中科院物理所
发布时间:2025-06-12
上个月,00后女孩陈诺在中国儿童青少年魔方挑战赛上,“0秒”还原魔方,引起广泛关注。网友们纷纷称赞:禁止在麻瓜面前施展魔法。
上个月,00后女孩陈诺在中国儿童青少年魔方挑战赛上,“0秒”还原魔方,引起广泛关注。网友们纷纷称赞:禁止在麻瓜面前施展魔法。
然而魔方却并不只是代表童年回忆的玩具,其实它蕴含着深厚的数学知识,特别是作为“群论”应用的一个极佳例子,得到了许多研究。接下来,就让我们一起走进童年回忆的背后,挖掘儿时未见的深度吧!
魔方(Rubic cube)是由一名匈牙利教授Ern Rubik发明的,最初他发明魔方,是作为一种教学用具,希望通过魔方的空间结构和操作特点来提高学生们的空间想象能力。据说是世界上最早的魔方
1974年,魔方一经问世,迅速受到世人的喜爱,并得到了蓬勃发展。从最初的三阶魔方,发展到四阶、五阶乃至更高阶,此外还出现许多异形魔方,比如镜面魔方、金字塔魔方、五魔方等等。各种不同的衍生魔方
如今,在世界魔方协会WCA(World Cube Association)的赛事中,目前三阶魔方的单次还原世界纪录由8岁的中国小将耿暄一创造,他在2025年沈阳春季魔方赛中以3.05s的成绩打破世界纪录,成为新的世界纪录保持者。
三阶魔方单次还原世界纪录历史
经典3×3×3三阶魔方是由54个小面组成的正方形,每个侧面分成9个小面,总体由26个“小立方体“组成,分别包括6个中心块、12个棱块和8个角块。
其内部构建十分精巧,各个构件之间互相嵌合,中心块与中心轴架通过转动副连接,转动每一层时,每一层的子块之间通过互相约束而自锁,成为一个构件,由组合转动副和组合移动副共同实现每层的转动。三阶魔方的内部构造和运动副
四阶魔方,看似只是多加了一阶,实际复杂度却大大增加。其由24个相同的中心块、8个相同的角块、24个相同的边块、T形连接件、D形连接件等130多个零件组成。中心连接件、T形连接件和D形连接件共同构成的中心球为核心转动件,魔方子块镶嵌在中心球表面,与三阶魔方相同的是,转动一层时,每一层的子块之间通过互相约束而自锁。四阶魔方内部构造图
按国际惯例,魔方着色是按照:上面黄色、底面白色、左边蓝色、右面绿色、前面红色、后面橙色来的,意味着白色和黄色相对面,蓝色和绿色相对面,红色和橙色相对面。三阶魔方的中心块被固定在中心对称十字架上,中心块的颜色对应并不会随着拧动魔方而改变;但四阶魔方不同,中心块的相对位置可以任意改变,但受到棱块、角块颜色固定的影响,必须旋转到满足惯例的中心块排布才能复原。三阶魔方总的状态数有多少?这可以通过排列组合计算出来。
在魔方中,角块只能被旋转到角块的位置,棱块只能被旋转到棱块的位置。对于8个角块,第一个角块可以选择的位置有8种,第二个角块可以选择的位置有7种,以此类推;每个角块在每个位置可以有3种颜色方向,当有7个角块的位置和方向确定后,最后一个角块的位置和方向也被确定(因为不能单独翻转一个角块),因此角块的状态数量为对12个棱块而言,类似的,第一个棱块可以选择的位置有12种,第二个棱块可以选择的位置有11种,以此类推;每个棱块在每个位置可以有2种颜色方向,当有11个棱块的位置和方向确定后,最后一个棱块的位置和方向也被确定(因为不能单独翻转一个棱块),因此棱块的状态数量为除了以上这些状态以外,在魔方的实际扭动中,还有一半的可能性是不会在魔方的正常旋转中达到的,因此还需要将以上状态数除以2。对于N阶魔方,我们也可以使用类似的方法(即先讨论角块和棱块的所有状态,再排除不可能被旋转出的情况)去讨论其所有可能的状态数,这里我们直接跳过冗长的证明,直接给出N阶魔方状态数的通解吧:
经过半个世纪的历史,三阶魔方的复原发展出角先、CFOP、桥式等方法,而随着时代进步和魔方复原机器人的兴起,人拧和机器复原也朝着各自具有优势的方向延伸出不同的体系,这里我们先简单介绍手拧的复原方法。
最早被魔方的发明者Rubik所使用的复原方法,需要记忆的公式较少,也很直观,但步骤很多,且需要敏锐的观察能力和反应能力。其包括底面及顶面角块归位、底面及顶面棱块归位、中心层棱块归位、检查颜色方向几步,虽然发明较早,但与如今的盲拧思路比较类似。
1979年,层先法由大卫·辛格马斯特首次提出,这是大多数新手玩家所必学的方法,比较符合人对魔方复原的认知——一层一层复原。
这是目前最为主流的速拧解法,在WCA大赛中非常受欢迎。其由捷克的Jessica Fridrich等人在1981年左右提出。方法涉及到119个公式,由Cross底层十字、F2L(First 2 Layer)还原下两层、OLL(Orientation of Last Layer)调整上层棱块和角块的方向、PLL(Permutation of Last Layer)完成上层所有块的位置排列组成。可以理解为层先法的精华迅速版。
CFOP四个阶段的目标状态
在开始聊群论之前,我们先需要了解一套对于魔方爱好者非常熟悉的一套“语言“,即魔方转动的符号描述,也是魔方公式的通用表达。魔方的转动以魔方面的英文缩写来表示,手持魔方时,魔方的六个面分别为U(up)R(Right)F(Front)D(Down)L(Left)B(Back),用每个方向的大写首字母来表示“将该面顺时针旋转90度”,具体的表示如下图所示。在数学中,我们暂时忽略中间层和两层一起的转动,因为它们都可以用这六种转动的叠加实现。群论,是研究“群“这一代数结构的学科,群(Group)是一种规定了特殊乘法的集合。我们利用群的定义,可以证明上述的6个转动构成了“魔方群”。
当规定了元素的“乘积”法则之后,元素的集合G若满足下面四个条件,则称其为群G:
①集合对乘积的封闭性:
②乘积满足结合律:
③集合中存在左恒元,用它左乘集合中的任意元素,保持该元素不变:
④任意元素的左逆元存在于集合中,满足:
即每个元素都存在一个与它运算后等于左恒元的元素
首先我们定义魔方群中的“乘法”法则,规定魔方的转动合成运算是从左向右的,即M1M2表示先转动M1再转动M2,比如RU表示先转右面,再转上面。用c表示魔方状态,即各块和小面的方位,用M(c)表示魔方在状态c下经M转动后所生成的新状态。
设G是魔方所有转动生成的集合,那么它能够满足:
1.封闭性:G中任意元素都可以表示成一系列转动的合成,则G中任意两个元素的合成同样是一系列转动的合成。
2.结合律:用c表示任意魔方状态,则
3.存在左恒元:魔方不进行转动,或是由转动组合而成原状态时,为单位转动,所以存在左恒元。
4.存在左逆元:若一转动表示为
,故逆元存在。
即证明,由魔方所有转动生成的集合,以合成作为运算,构成一个群,称为魔方群。
我们这里建立的魔方群,表示的是魔方的转动的描述,那有没有办法描述出魔方的状态呢?在这四个条件中,1和3比较方便定义的。因为角块和棱块在旋转过程中只会一直呆在角块和棱块位置,所以我们可以用置换群来定义:置换群是指n个客体排列次序的变换,n个客体的n!个置换的集合满足群的四个条件,构成群,称为n个客体置换群,记作Sn。G是魔方群,SV是角块在G作用下的置换群,SE是棱块在G作用下的置换群。定义与g相对应的角块置换σ和棱块置换τ如下
这样,角块的位置可以用S8中的元素表示,棱块的位置可以用S12中的元素表示。要表述角块和棱块的方向,我们还要约定一种指向特定面的字母表示法。用小写的u, d, f, b, l, r表示各面;用两个方位字母确认棱块,排在首位的字母为指向的面,如db表示d(下)面b(后)方位的小面;用三个方位字母确认角块,如ufl表示u(上)面fl(前左)方位的小面。从角块开始,在每个角块朝上/下的一面上标记一个数字:在这一步被标记的小面称为标准面,用以决定角块的方向。下一步,在标有序号的这些小面上再标记0,然后顺时针旋转,在角块的另外两面上依次标记1和2。
在以上标记下,就可以定义角块的方向了,用ν=(ν1,ν2,...,ν8)表示角块的方向,其中νi表示第i个角块标准面上的数字,也可以认为是顺时针旋转该角块,使其标记为0的面与标准面重合所需要的次数,ν满足类似地,可以定义棱块的方向,在每个棱块朝上/下/前/后的一面上标记一个数字:在标记有序号的这些小面上再标记0,然后在棱块的另一面上标记1。用ω=(ω1,ω2,...,ω12)表示边块的方向,其中ωj表示第j个边块标准面上的数字,ω满足设ν(g)和ω(g)分别表示g作用后的角块方向和边块方向,举例而言,对于R即右面转动90度,左面的角块没有发生变化,因此ν1=0,ν4=0,ν5=0,ν6=0;右边的角块发生了变化,有ν2=1,ν3=2,ν7=2,ν8=1,于是ν(R)=(0,1,2,0,0,0,2,1),即表示出了角块的方向。
经过上面的定义,任何魔方的状态就可以用这四个量来确定了。当然,表述魔方群的方法远远不止这一种,期待着大家用更多的方法更巧妙地将魔方纳入数学体系中~当我们已经了解了如何用群论表达魔方之后,我们再回来看看机器人——它是怎么复原魔方的?在前面列举的复原魔方方法,都是根据人的直观感觉来进行策略,而机器人策略则完全不符合人的直觉,对他们而言,步骤更少的方法才是最佳选择。
TM算法(Thislethwaite Method)
TM算法的策略是通过逐步降低魔方所处的群到更小的子群,使得魔方的状态数减小,直到最后的单位子群,就复原了魔方。所以利用TM算法复原魔方的每一步来看,魔方都是很乱的,但魔方的状态数是随着群的减小而在逐渐减小的。TM算法对于公式的记忆和判断要求非常高,人手利用TM算法复原魔方是非常困难的,但计算机强大的运算能力使TM算法成为可能,对于计算机而言它也是步骤更少的优选。
TM算法降解子群的四个步骤
TM算法每个步骤的魔方状态
这是当前最主流的计算机解魔方算法,该算法平均可以在几毫秒的时间内得到一个不超过20步的解法。该方法将魔方的复原过程分成了两个阶段,第一个阶段是将乱序魔方转动成一个子群内的状态,这个子群表示为G1=<U,D,R2,L2,F2,B2>;第二阶段则是复原这个子群G1中的魔方。算法将会搜索这两个阶段分别需要的步数和总步数,并输出最短总步数的解进行复原。
Kociemba算法解上述魔方的过程
计算机解魔方时间对比
半个世纪过去,魔方已从Rubik手中的教具,变成了世界各地孩子、长不大的孩子、计算机幼体的探索和快乐。