8岁“魔”童打破世界纪录,难道他掌握了群论的终极奥义?

虽然魔方可以从小学到大,但是魔方中的数学你知道多少呢?

撰文 | 花卷

上个月,00后女孩陈诺在中国儿童青少年魔方挑战赛上,“0秒”还原魔方,引起广泛关注。网友们纷纷称赞:禁止在麻瓜面前施展魔法。

500

还原魔方,应该是很多人童年的“小小梦想“。

然而魔方却并不只是代表童年回忆的玩具,其实它蕴含着深厚的数学知识,特别是作为“群论”应用的一个极佳例子,得到了许多研究。

接下来,就让我们一起走进童年回忆的背后,挖掘儿时未见的深度吧!

魔方的历史和当下

魔方(Rubic cube)是由一名匈牙利教授Ern Rubik发明的,最初他发明魔方,是作为一种教学用具,希望通过魔方的空间结构和操作特点来提高学生们的空间想象能力。

500

据说是世界上最早的魔方

1974年,魔方一经问世,迅速受到世人的喜爱,并得到了蓬勃发展。从最初的三阶魔方,发展到四阶、五阶乃至更高阶,此外还出现许多异形魔方,比如镜面魔方、金字塔魔方、五魔方等等。

500

各种不同的衍生魔方

如今,在世界魔方协会WCA(World Cube Association)的赛事中,目前三阶魔方的单次还原世界纪录由8岁的中国小将耿暄一创造,他在2025年沈阳春季魔方赛中以3.05s的成绩打破世界纪录,成为新的世界纪录保持者。

500500

三阶魔方单次还原世界纪录历史

魔方的组成

经典3×3×3三阶魔方是由54个小面组成的正方形,每个侧面分成9个小面,总体由26个“小立方体“组成,分别包括6个中心块、12个棱块和8个角块。

500500

其内部构建十分精巧,各个构件之间互相嵌合,中心块与中心轴架通过转动副连接,转动每一层时,每一层的子块之间通过互相约束而自锁,成为一个构件,由组合转动副和组合移动副共同实现每层的转动。

500500

三阶魔方的内部构造和运动副

四阶魔方,看似只是多加了一阶,实际复杂度却大大增加。其由24个相同的中心块、8个相同的角块、24个相同的边块、T形连接件、D形连接件等130多个零件组成。中心连接件、T形连接件和D形连接件共同构成的中心球为核心转动件,魔方子块镶嵌在中心球表面,与三阶魔方相同的是,转动一层时,每一层的子块之间通过互相约束而自锁。

500

四阶魔方内部构造图

按国际惯例,魔方着色是按照:上面黄色、底面白色、左边蓝色、右面绿色、前面红色、后面橙色来的,意味着白色和黄色相对面,蓝色和绿色相对面,红色和橙色相对面。

500

三阶魔方的中心块被固定在中心对称十字架上,中心块的颜色对应并不会随着拧动魔方而改变;但四阶魔方不同,中心块的相对位置可以任意改变,但受到棱块、角块颜色固定的影响,必须旋转到满足惯例的中心块排布才能复原。

三阶魔方总的状态数有多少?这可以通过排列组合计算出来。

500

除了以上这些状态以外,在魔方的实际扭动中,还有一半的可能性是不会在魔方的正常旋转中达到的,因此还需要将以上状态数除以2。

这样,就得到了上式中三阶魔方的总状态数。

对于N阶魔方,我们也可以使用类似的方法(即先讨论角块和棱块的所有状态,再排除不可能被旋转出的情况)去讨论其所有可能的状态数,这里我们直接跳过冗长的证明,直接给出N阶魔方状态数的通解吧:

500

魔方的复原

经过半个世纪的历史,三阶魔方的复原发展出角先、CFOP、桥式等方法,而随着时代进步和魔方复原机器人的兴起,人拧和机器复原也朝着各自具有优势的方向延伸出不同的体系,这里我们先简单介绍手拧的复原方法。

01 角先法(Corners First)

最早被魔方的发明者Rubik所使用的复原方法,需要记忆的公式较少,也很直观,但步骤很多,且需要敏锐的观察能力和反应能力。其包括底面及顶面角块归位、底面及顶面棱块归位、中心层棱块归位、检查颜色方向几步,虽然发明较早,但与如今的盲拧思路比较类似。

02 层先法(Layer by layer)

1979年,层先法由大卫·辛格马斯特首次提出,这是大多数新手玩家所必学的方法,比较符合人对魔方复原的认知——一层一层复原。

500

03 CFOP解法

这是目前最为主流的速拧解法,在WCA大赛中非常受欢迎。其由捷克的Jessica Fridrich等人在1981年左右提出。方法涉及到119个公式,由Cross底层十字、F2L(First 2 Layer)还原下两层、OLL(Orientation of Last Layer)调整上层棱块和角块的方向、PLL(Permutation of Last Layer)完成上层所有块的位置排列组成。可以理解为层先法的精华迅速版。

500

CFOP四个阶段的目标状态

魔方中的群论

在开始聊群论之前,我们先需要了解一套对于魔方爱好者非常熟悉的一套“语言“,即魔方转动的符号描述,也是魔方公式的通用表达。

魔方的转动以魔方面的英文缩写来表示,手持魔方时,魔方的六个面分别为U(up)R(Right)F(Front)D(Down)L(Left)B(Back),用每个方向的大写首字母来表示“将该面顺时针旋转90度”,具体的表示如下图所示。

500

在数学中,我们暂时忽略中间层和两层一起的转动,因为它们都可以用这六种转动的叠加实现。

而这6个转动,构成了魔方所有转动生成的集合

500

群论,是研究“群“这一代数结构的学科,群(Group)是一种规定了特殊乘法的集合。我们利用群的定义,可以证明上述的6个转动构成了“魔方群”。

500500500500

我们这里建立的魔方群,表示的是魔方的转动的描述,那有没有办法描述出魔方的状态呢?

三阶魔方的状态,由以下四个条件共同决定:

角块的位置角块的方向棱块的位置棱块的方向

在这四个条件中,1和3比较方便定义的。因为角块和棱块在旋转过程中只会一直呆在角块和棱块位置,所以我们可以用置换群来定义:

500

要表述角块和棱块的方向,我们还要约定一种指向特定面的字母表示法。用小写的u, d, f, b, l, r表示各面;用两个方位字母确认棱块,排在首位的字母为指向的面,如db表示d(下)面b(后)方位的小面;用三个方位字母确认角块,如ufl表示u(上)面fl(前左)方位的小面。

从角块开始,在每个角块朝上/下的一面上标记一个数字:

在u面上的ufl小面上标记1

在u面上的urf小面上标记2

在u面上的ubr小面上标记3

在u面上的ulb小面上标记4

在d面上的dbl小面上标记5

在d面上的dlf小面上标记6

在d面上的dfr小面上标记7

在d面上的drb小面上标记8

在这一步被标记的小面称为标准面,用以决定角块的方向。下一步,在标有序号的这些小面上再标记0,然后顺时针旋转,在角块的另外两面上依次标记1和2。

500500

类似地,可以定义棱块的方向,在每个棱块朝上/下/前/后的一面上标记一个数字:

在u面上的ub小面上标记1

在u面上的ur小面上标记2

在u面上的uf小面上标记3

在u面上的ul小面上标记4

在b面上的bl小面上标记5

在b面上的br小面上标记6

在f面上的fr小面上标记7

在f面上的fl小面上标记8

在d面上的db小面上标记9

在d面上的dr小面上标记10

在d面上的df小面上标记11

在d面上的dl小面上标记12

在标记有序号的这些小面上再标记0,然后在棱块的另一面上标记1。

500500

当然,表述魔方群的方法远远不止这一种,期待着大家用更多的方法更巧妙地将魔方纳入数学体系中~

魔方机器人的复原

当我们已经了解了如何用群论表达魔方之后,我们再回来看看机器人——它是怎么复原魔方的?

500500

在前面列举的复原魔方方法,都是根据人的直观感觉来进行策略,而机器人策略则完全不符合人的直觉,对他们而言,步骤更少的方法才是最佳选择。

01 TM算法(Thislethwaite Method)

TM算法的策略是通过逐步降低魔方所处的群到更小的子群,使得魔方的状态数减小,直到最后的单位子群,就复原了魔方。所以利用TM算法复原魔方的每一步来看,魔方都是很乱的,但魔方的状态数是随着群的减小而在逐渐减小的。

TM算法对于公式的记忆和判断要求非常高,人手利用TM算法复原魔方是非常困难的,但计算机强大的运算能力使TM算法成为可能,对于计算机而言它也是步骤更少的优选。

500

TM算法降解子群的四个步骤

500

TM算法每个步骤的魔方状态

02 Kociemba算法(二阶段算法)

这是当前最主流的计算机解魔方算法,该算法平均可以在几毫秒的时间内得到一个不超过20步的解法。

500500500

Kociemba算法解上述魔方的过程

计算机的解魔方方法,大大降低了还原的步骤。

500

计算机解魔方时间对比

半个世纪过去,魔方已从Rubik手中的教具,变成了世界各地孩子、长不大的孩子、计算机幼体的探索和快乐。

如果你还未学会复原,何不尝试着趁现在重拾童心呢?

如果你已经是高手了,何不尝试着提升一下sub呢?

参考资料

[1] https://zhuanlan.zhihu.com/p/348865035

[2] https://www.worldcubeassociation.org/

[3] https://zhuanlan.zhihu.com/p/35339755

[4] https://www.jaapsch.net/puzzles/

[5] https://zhuanlan.zhihu.com/p/138559685

[6] http://www.rubik.com.cn/notation.htm

[7]梁小龙.解魔方算法的研究和系统实现[D].东北大学,2013.

[8]李文超.面向多阶魔方的智能还原机器人算法设计与实验研究[D].燕山大学,2023.

[9]向腊.魔方机器人控制系统的设计与实现[D].湖南大学,2016.

[10]喻腾飞.魔方群的研究[D].中国科学技术大学,2014.

[11]朱磊.群论在魔方中的应用[D].苏州大学,2008.

[12]谭水生.解三阶魔方智能机器人系统的设计与研究[D].五邑大学,2020.

[13]https://people.math.harvard.edu/~jjchen/docs/Group%20Theory%20and%20the%20Rubik%27s%20Cube.pdf

本文经授权转载自微信公众号“中科院物理所”。

500

特 别 提 示

1. 进入『返朴』微信公众号底部菜单“精品专栏“,可查阅不同主题系列科普文章。

2. 『返朴』提供按月检索文章功能。关注公众号,回复四位数组成的年份+月份,如“1903”,可获取2019年3月的文章索引,以此类推。

站务

全部专栏