雖然魔方可以從小學(xué)到大,但是魔方中的數(shù)學(xué)你知道多少呢?
撰文 | 花卷
上個月,00后女孩陳諾在中國兒童青少年魔方挑戰(zhàn)賽上,“0秒”還原魔方,引起廣泛關(guān)注。網(wǎng)友們紛紛稱贊:禁止在麻瓜面前施展魔法。
還原魔方,應(yīng)該是很多人童年的“小小夢想“。
然而魔方卻并不只是代表童年回憶的玩具,其實它蘊含著深厚的數(shù)學(xué)知識,特別是作為“群論”應(yīng)用的一個極佳例子,得到了許多研究。
接下來,就讓我們一起走進(jìn)童年回憶的背后,挖掘兒時未見的深度吧!
魔方的歷史和當(dāng)下
魔方(Rubic cube)是由一名匈牙利教授Ern Rubik發(fā)明的,最初他發(fā)明魔方,是作為一種教學(xué)用具,希望通過魔方的空間結(jié)構(gòu)和操作特點來提高學(xué)生們的空間想象能力。
據(jù)說是世界上最早的魔方
1974年,魔方一經(jīng)問世,迅速受到世人的喜愛,并得到了蓬勃發(fā)展。從最初的三階魔方,發(fā)展到四階、五階乃至更高階,此外還出現(xiàn)許多異形魔方,比如鏡面魔方、金字塔魔方、五魔方等等。
各種不同的衍生魔方
如今,在世界魔方協(xié)會WCA(World Cube Association)的賽事中,目前三階魔方的單次還原世界紀(jì)錄由8歲的中國小將耿暄一創(chuàng)造,他在2025年沈陽春季魔方賽中以3.05s的成績打破世界紀(jì)錄,成為新的世界紀(jì)錄保持者。
三階魔方單次還原世界紀(jì)錄歷史
魔方的組成
經(jīng)典3×3×3三階魔方是由54個小面組成的正方形,每個側(cè)面分成9個小面,總體由26個“小立方體“組成,分別包括6個中心塊、12個棱塊和8個角塊。
其內(nèi)部構(gòu)建十分精巧,各個構(gòu)件之間互相嵌合,中心塊與中心軸架通過轉(zhuǎn)動副連接,轉(zhuǎn)動每一層時,每一層的子塊之間通過互相約束而自鎖,成為一個構(gòu)件,由組合轉(zhuǎn)動副和組合移動副共同實現(xiàn)每層的轉(zhuǎn)動。
三階魔方的內(nèi)部構(gòu)造和運動副
四階魔方,看似只是多加了一階,實際復(fù)雜度卻大大增加。其由24個相同的中心塊、8個相同的角塊、24個相同的邊塊、T形連接件、D形連接件等130多個零件組成。中心連接件、T形連接件和D形連接件共同構(gòu)成的中心球為核心轉(zhuǎn)動件,魔方子塊鑲嵌在中心球表面,與三階魔方相同的是,轉(zhuǎn)動一層時,每一層的子塊之間通過互相約束而自鎖。
四階魔方內(nèi)部構(gòu)造圖
按國際慣例,魔方著色是按照:上面黃色、底面白色、左邊藍(lán)色、右面綠色、前面紅色、后面橙色來的,意味著白色和黃色相對面,藍(lán)色和綠色相對面,紅色和橙色相對面。
三階魔方的中心塊被固定在中心對稱十字架上,中心塊的顏色對應(yīng)并不會隨著擰動魔方而改變;但四階魔方不同,中心塊的相對位置可以任意改變,但受到棱塊、角塊顏色固定的影響,必須旋轉(zhuǎn)到滿足慣例的中心塊排布才能復(fù)原。
三階魔方總的狀態(tài)數(shù)有多少?這可以通過排列組合計算出來。
除了以上這些狀態(tài)以外,在魔方的實際扭動中,還有一半的可能性是不會在魔方的正常旋轉(zhuǎn)中達(dá)到的,因此還需要將以上狀態(tài)數(shù)除以2。
這樣,就得到了上式中三階魔方的總狀態(tài)數(shù)。
對于N階魔方,我們也可以使用類似的方法(即先討論角塊和棱塊的所有狀態(tài),再排除不可能被旋轉(zhuǎn)出的情況)去討論其所有可能的狀態(tài)數(shù),這里我們直接跳過冗長的證明,直接給出N階魔方狀態(tài)數(shù)的通解吧:
魔方的復(fù)原
經(jīng)過半個世紀(jì)的歷史,三階魔方的復(fù)原發(fā)展出角先、CFOP、橋式等方法,而隨著時代進(jìn)步和魔方復(fù)原機器人的興起,人擰和機器復(fù)原也朝著各自具有優(yōu)勢的方向延伸出不同的體系,這里我們先簡單介紹手?jǐn)Q的復(fù)原方法。
01 角先法(Corners First)
最早被魔方的發(fā)明者Rubik所使用的復(fù)原方法,需要記憶的公式較少,也很直觀,但步驟很多,且需要敏銳的觀察能力和反應(yīng)能力。其包括底面及頂面角塊歸位、底面及頂面棱塊歸位、中心層棱塊歸位、檢查顏色方向幾步,雖然發(fā)明較早,但與如今的盲擰思路比較類似。
02 層先法(Layer by layer)
1979年,層先法由大衛(wèi)·辛格馬斯特首次提出,這是大多數(shù)新手玩家所必學(xué)的方法,比較符合人對魔方復(fù)原的認(rèn)知——一層一層復(fù)原。
03 CFOP解法
這是目前最為主流的速擰解法,在WCA大賽中非常受歡迎。其由捷克的Jessica Fridrich等人在1981年左右提出。方法涉及到119個公式,由Cross底層十字、F2L(First 2 Layer)還原下兩層、OLL(Orientation of Last Layer)調(diào)整上層棱塊和角塊的方向、PLL(Permutation of Last Layer)完成上層所有塊的位置排列組成。可以理解為層先法的精華迅速版。
CFOP四個階段的目標(biāo)狀態(tài)
魔方中的群論
在開始聊群論之前,我們先需要了解一套對于魔方愛好者非常熟悉的一套“語言“,即魔方轉(zhuǎn)動的符號描述,也是魔方公式的通用表達(dá)。
魔方的轉(zhuǎn)動以魔方面的英文縮寫來表示,手持魔方時,魔方的六個面分別為U(up)R(Right)F(Front)D(Down)L(Left)B(Back),用每個方向的大寫首字母來表示“將該面順時針旋轉(zhuǎn)90度”,具體的表示如下圖所示。
在數(shù)學(xué)中,我們暫時忽略中間層和兩層一起的轉(zhuǎn)動,因為它們都可以用這六種轉(zhuǎn)動的疊加實現(xiàn)。
而這6個轉(zhuǎn)動,構(gòu)成了魔方所有轉(zhuǎn)動生成的集合
群論,是研究“群“這一代數(shù)結(jié)構(gòu)的學(xué)科,群(Group)是一種規(guī)定了特殊乘法的集合。我們利用群的定義,可以證明上述的6個轉(zhuǎn)動構(gòu)成了“魔方群”。
我們這里建立的魔方群,表示的是魔方的轉(zhuǎn)動的描述,那有沒有辦法描述出魔方的狀態(tài)呢?
三階魔方的狀態(tài),由以下四個條件共同決定:
- 角塊的位置
- 角塊的方向
- 棱塊的位置
- 棱塊的方向
在這四個條件中,1和3比較方便定義的。因為角塊和棱塊在旋轉(zhuǎn)過程中只會一直呆在角塊和棱塊位置,所以我們可以用置換群來定義:
要表述角塊和棱塊的方向,我們還要約定一種指向特定面的字母表示法。用小寫的u, d, f, b, l, r表示各面;用兩個方位字母確認(rèn)棱塊,排在首位的字母為指向的面,如db表示d(下)面b(后)方位的小面;用三個方位字母確認(rèn)角塊,如ufl表示u(上)面fl(前左)方位的小面。
從角塊開始,在每個角塊朝上/下的一面上標(biāo)記一個數(shù)字:
在u面上的ufl小面上標(biāo)記1
在u面上的urf小面上標(biāo)記2
在u面上的ubr小面上標(biāo)記3
在u面上的ulb小面上標(biāo)記4
在d面上的dbl小面上標(biāo)記5
在d面上的dlf小面上標(biāo)記6
在d面上的dfr小面上標(biāo)記7
在d面上的drb小面上標(biāo)記8
在這一步被標(biāo)記的小面稱為標(biāo)準(zhǔn)面,用以決定角塊的方向。下一步,在標(biāo)有序號的這些小面上再標(biāo)記0,然后順時針旋轉(zhuǎn),在角塊的另外兩面上依次標(biāo)記1和2。
類似地,可以定義棱塊的方向,在每個棱塊朝上/下/前/后的一面上標(biāo)記一個數(shù)字:
在u面上的ub小面上標(biāo)記1
在u面上的ur小面上標(biāo)記2
在u面上的uf小面上標(biāo)記3
在u面上的ul小面上標(biāo)記4
在b面上的bl小面上標(biāo)記5
在b面上的br小面上標(biāo)記6
在f面上的fr小面上標(biāo)記7
在f面上的fl小面上標(biāo)記8
在d面上的db小面上標(biāo)記9
在d面上的dr小面上標(biāo)記10
在d面上的df小面上標(biāo)記11
在d面上的dl小面上標(biāo)記12
在標(biāo)記有序號的這些小面上再標(biāo)記0,然后在棱塊的另一面上標(biāo)記1。
當(dāng)然,表述魔方群的方法遠(yuǎn)遠(yuǎn)不止這一種,期待著大家用更多的方法更巧妙地將魔方納入數(shù)學(xué)體系中~
魔方機器人的復(fù)原
當(dāng)我們已經(jīng)了解了如何用群論表達(dá)魔方之后,我們再回來看看機器人——它是怎么復(fù)原魔方的?
在前面列舉的復(fù)原魔方方法,都是根據(jù)人的直觀感覺來進(jìn)行策略,而機器人策略則完全不符合人的直覺,對他們而言,步驟更少的方法才是最佳選擇。
01 TM算法(Thislethwaite Method)
TM算法的策略是通過逐步降低魔方所處的群到更小的子群,使得魔方的狀態(tài)數(shù)減小,直到最后的單位子群,就復(fù)原了魔方。所以利用TM算法復(fù)原魔方的每一步來看,魔方都是很亂的,但魔方的狀態(tài)數(shù)是隨著群的減小而在逐漸減小的。
TM算法對于公式的記憶和判斷要求非常高,人手利用TM算法復(fù)原魔方是非常困難的,但計算機強大的運算能力使TM算法成為可能,對于計算機而言它也是步驟更少的優(yōu)選。
TM算法降解子群的四個步驟
TM算法每個步驟的魔方狀態(tài)
02 Kociemba算法(二階段算法)
這是當(dāng)前最主流的計算機解魔方算法,該算法平均可以在幾毫秒的時間內(nèi)得到一個不超過20步的解法。
Kociemba算法解上述魔方的過程
計算機的解魔方方法,大大降低了還原的步驟。
計算機解魔方時間對比
半個世紀(jì)過去,魔方已從Rubik手中的教具,變成了世界各地孩子、長不大的孩子、計算機幼體的探索和快樂。
如果你還未學(xué)會復(fù)原,何不嘗試著趁現(xiàn)在重拾童心呢?
如果你已經(jīng)是高手了,何不嘗試著提升一下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]梁小龍.解魔方算法的研究和系統(tǒng)實現(xiàn)[D].東北大學(xué),2013.
[8]李文超.面向多階魔方的智能還原機器人算法設(shè)計與實驗研究[D].燕山大學(xué),2023.
[9]向臘.魔方機器人控制系統(tǒng)的設(shè)計與實現(xiàn)[D].湖南大學(xué),2016.
[10]喻騰飛.魔方群的研究[D].中國科學(xué)技術(shù)大學(xué),2014.
[11]朱磊.群論在魔方中的應(yīng)用[D].蘇州大學(xué),2008.
[12]譚水生.解三階魔方智能機器人系統(tǒng)的設(shè)計與研究[D].五邑大學(xué),2020.
[13]https://people.math.harvard.edu/~jjchen/docs/Group%20Theory%20and%20the%20Rubik%27s%20Cube.pdf
本文經(jīng)授權(quán)轉(zhuǎn)載自微信公眾號“中科院物理所”。
特 別 提 示
1. 進(jìn)入『返樸』微信公眾號底部菜單“精品專欄“,可查閱不同主題系列科普文章。
2. 『返樸』提供按月檢索文章功能。關(guān)注公眾號,回復(fù)四位數(shù)組成的年份+月份,如“1903”,可獲取2019年3月的文章索引,以此類推。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.