群論與魔方:五階魔方及其還原攻略


由本章開始,筆者將介紹如何運用前兩章有關「高階魔方」的基本知識來還原「高階魔方」,本章首先從5 × 5 × 5魔方(又稱「五階魔方」或「教授立方體」Professor Cube)說起。請注意雖然4 × 4 × 4魔方似乎比5 × 5 × 5魔方簡單,但由於4 × 4 × 4魔方是「偶數階魔方」,其還原過程有一些「奇數階魔方」所無的複雜情況,所以先介紹5 × 5 × 5魔方的還原攻略會較為方便。下圖以5 × 5 × 5魔方的紅色面展示這種魔方7個小面軌道的名稱及其「特徵數列」:

請注意「01」和「04」雖然是兩個不同的小面軌道,但由於每個「01」小面都與一個「04」小面組成邊塊,所以所有「01-04」邊塊組成一個邊塊軌道。此外,每個「06」小面也與另一個「06」小面組成邊塊,每個「02」小面也與另外兩個「02」小面組成角塊,所以所有「06-06」邊塊(即正中邊塊)組成一個邊塊軌道,所有角塊則組成一個角塊軌道。

以下介紹還原5 × 5 × 5魔方的五個步驟。為免與前面介紹過的3 × 3 × 3魔方還原攻略的七個步驟相混淆,本章(及此後各章)會用羅馬數字I、II、III等命名「高階魔方」還原攻略的各步驟。以下把每一個面上的9個中心塊看作一個區塊,稱為「中心區」,並把每一條邊上的3個邊塊也看作一個區塊,稱為「邊區」

第I步:搞定首四個面的中心區

這一步的目標是使5 × 5 × 5魔方任意四個面上的所有中心塊歸位。為方便下一步的運作,這四個面的選擇最好能讓餘下的兩個面處於相鄰位置。這一步的要旨就是適當轉動魔方(包括外表面和夾心層旋轉),逐一把與某個面「正中中心塊」同色的中心塊歸位。此一過程沒有公式可循,讀者必須自行領會,以下提供一些秘訣。

A. 進行第I步時應逐個面處理。在處理某個面時,應先處理「居中行」(即包含「正中中心塊」的中心行,縱行或橫行均可),然後再處理其餘兩個「非居中行」。在處理「居中行」時,只須把應與「正中中心塊」相鄰的兩個小面依次歸位。在處理「非居中行」時,不要嘗試把屬於該行的三個中心塊逐一歸位,而應先把這三個中心塊逐一移到某個未搞定的面上,並使它們連成一行,然後再把這一整行歸位。下圖是此一秘訣的一個示例(註1)。在下圖中,前面(即紅色面)的「居中行」已搞定。此外,上面也已砌好一個紅色「非居中行」。接下來我們只需進行UL1便可把這整個「非居中行」歸位。



B. 進行第I步時我們要經常使用外表面旋轉和夾心層旋轉把中心塊移來移去,請注意夾心層旋轉可能會破壞另一個面上已搞定的「中心區」(外表面旋轉則沒有這個問題)。因此每次在使用夾心層旋轉移動中心塊後,都要檢查是否搞亂了任何已搞定的「中心區」。如是,我們便要設法恢復被搞亂的「中心區」。以下介紹一種「先入後避法」,這種方法是先把某中心塊移入它要歸位的面,接著移動該中心塊,讓它避開剛才歸位所經過的「通道」,然後再恢復被搞亂的「中心區」。以下用一個具體例子以作示範:

假設我們已如上圖所示搞定前面(即紅色面)和右面(即黃色面)的「中心區」,現在處理上面(即藍色面)。假設我們在後面找到一個藍色中心塊,並已轉到適當位置。接著我們用R1−1,這固然可以把該藍色中心塊從後面移到上面,但同時也把前面靠右的紅色「非居中行」移到下面,從而搞亂了前面的「中心區」,如下圖所示(在下圖中,黃色方框圍著的就是藍色中心塊移到上面須經過的「通道」):

如要恢復前面的「中心區」,我們必須進行R1。但如果在上圖所示的情況下進行R1,我們勢必把剛移到上面來的藍色中心塊經黃框「通道」重新推回後面,打回原形。為了避免這種順得哥情失嫂意的情況,我們可以首先進行U,把剛移到上面來的藍色中心塊移離它原來靠右的位置,避開黃框「通道」,接著才進行R1,把被移到下面的紅色「非居中行」重新移回前面,如下圖所示:

請注意在上圖中,由於所有藍色中心塊都避開了黃框「通道」,所以在進行R1恢復前面的「中心區」時,藍色中心塊不會經黃框「通道」被推到後面。

C. 如前所述,有時我們要把一整個「非居中行」移入某個面中,但這種移入可能會破壞另一個面上已搞定的「中心區」。當出現這種情況時,我們可以使用一種「先避後入法」,這種方法的原理跟前面介紹的方法正好相反。以下用一個具體例子以作示範:

假設我們已如上圖所示搞定後面(即橙色面,在上圖看不到)和右面(即黃色面)的「中心區」,現在處理上面(即藍色面)。假設我們已在前面砌好一個藍色「非居中行」,並準備把該「非居中行」經上圖所示的黃框「通道」移到上面。請注意如果我們在上圖所示的情況下使用R1,固然可以把該藍色「非居中行」從前面移到上面,但也會同時把後面靠右的橙色「非居中行」移到下面,從而搞亂後面的「中心區」,而且我們無法沿用上面所介紹的「先入後避法」恢復後面的「中心區」。為避免這種順得哥情失嫂意的情況,我們可以先進行F2,讓上述藍色「非居中行」避開黃框「通道」。接著進行R1−1,把後面靠右的橙色「非居中行」移到上面,如下圖所示:

接著進行F2,把上述藍色「非居中行」重新移回靠右的位置。然後進行R1,使該藍色「非居中行」沿黃框「通道」移到上面歸位,並同時把靠右的橙色「非居中行」重新移回後面,從而恢復後面本已搞定的橙色「中心區」,如下圖所示:

第II步:搞定其餘兩個面的中心區

這一步的目標是使魔方其餘兩個面上的所有中心塊歸位。請注意由於現時中心塊的活動範圍只有兩個面,我們已不能純粹沿用上一步的方法來處理最後兩個「中心區」。為此筆者介紹一種「有借有償法」,這種方法的特點是從同一個面上的另一行「借入」一個中心塊,並以另一個面上的中心塊「補償」給借出中心塊的那一行。以下以具體例子示範如何運用「有借有償法」。假設現在魔方餘下前面(即紅色面)和右面(即黃色面)的「中心區」尚未搞定,如下圖所示。為方便討論,筆者在下圖的某些小面上標註了一些識別符號。

在上圖中,被藍色方框圍著的那一行欠缺一個紅色小面,我們希望用一個紅色小面取代上圖中標有「+」號的黃色小面。要使用「有借有償法」,必須滿足兩個條件:(i)在把紅色面順時針或逆時針旋轉90°後「+」號小面到達的另一橫行上的位置(即標有「%」號或「&」號的位置)應有一個紅色小面。由於標有「%」號或「&」號的位置都有紅色小面,我們可以任選一個,假設我們選了「%」號小面,這個「%」號小面將會被「借出」;(ii)在黃色面上與「+」號小面對應的位置(即標有「#」號的位置)應有一個紅色小面(如沒有,則可轉動黃色面,直至對應位置出現紅色小面為止),這個「#」號小面將作為「補償」之用。此外,上圖還包含一句口訣「順-逆-順」,用來提醒我們將要扭動黃色面的次序。「有借有償法」只有兩句口訣:要麼是「順-逆-順」,要麼是「逆-順-逆」。這個例子選擇前者是因為從「+」號小面移到「%」號小面,我們要順時針旋轉90°。接下來開始進行「有借有償法」。首先對紅色面進行U1−1,如下圖所示:

請注意經上述旋轉後,「+」號黃色小面被移到右面,而「#」號紅色小面則被移到後面。接著根據「順-逆-順」口訣,我們順時針旋轉黃色面90°,如下圖所示:

接著進行U2−1,這樣做的結果是,「居中行」把「%」號紅色小面「借」給了藍框行,現在藍框行不再缺少紅色小面了,而「+」號黃色小面則被移到後面,如下圖所示:

藍框行既已「借入」了「%」號小面,便要把它送回原位,因此接下來根據「順-逆-順」口訣,我們逆時針旋轉黃色面90°,如下圖所示:

接著進行U1,這樣做的結果是,不僅把藍框行送回原位,而且把剛才被送到後面的「#」號紅色小面送回來,剛好填補了「居中行」損失了的「%」號紅色小面的位置。這樣「居中行」雖然「借出」了「%」號紅色小面,但卻獲得「#」號紅色小面以作為「補償」,如下圖所示:

「居中行」既已完成它的任務,便要把它放回原位,所以接下來我們根據「順-逆-順」口訣,再次順時針旋轉黃色面90°,如下圖所示:

然後進行U2,這樣便把「居中行」放回原位(註2),請注意「+」號黃色小面也重新返回右面,如下圖所示:

以下讓我們再看另一個例子,請看下圖:

在上圖中,藍框行欠缺兩個紅色小面,但我們只能逐個處理,因此假設我們先處理標有「+」號的黃色小面。首先檢查「有借有償法」的兩個使用條件:(i)在把紅色面順時針或逆時針旋轉90°後「+」號小面到達的另一橫行上的位置(即標有「&」號的位置)(註3)應有一個紅色小面,這個「&」號小面將會被「借出」;(ii)在黃色面上與「+」號小面對應的位置(即標有「#」號的位置)應有一個紅色小面,這個「#」號小面將作為「補償」之用。此外,上圖還包含一句口訣「逆-順-逆」,這次我們選擇這句口訣是因為從「+」號小面移到「&」號小面,我們要逆時針旋轉90°。接下來開始進行「有借有償法」。首先進行D1,並根據「逆-順-逆」口訣,我們逆時針旋轉黃色面90°,如下圖所示:

接著進行U1−1,這樣做的結果是,黃框行把「&」號紅色小面「借」給了藍框行,如下圖所示:

藍框行既已「借入」了「&」號小面,便要把它送回原位,因此接著根據「逆-順-逆」口訣,我們順時針旋轉黃色面90°,並進行D1−1。這樣做的結果是,把藍框行送回原位,而黃框行雖然「借出」了「&」號紅色小面,但卻獲得「#」號紅色小面以作為「補償」,如下圖所示:

黃框行既已完成它的任務,便要把它放回原位,所以接下來我們根據「逆-順-逆」口訣再次逆時針旋轉黃色面90°,並進行U1,這樣便把黃框行也送回原位,如下圖所示:

繼續運用上述「有借有償法」,必可搞定上圖中未歸位的紅色和黃色小面。

第III步:搞定首10條邊的邊區

這一步的目標是使魔方的任意10條邊上出現同類邊塊,這裡「同類邊塊」是指小面顏色相同的邊塊。這一步的要旨與第I步很相似,也是適當轉動魔方,使同類邊塊聚在一條邊上。此一過程也沒有公式可循,以下提供一些秘訣。

A. 在轉動魔方的過程中,我們可能會把已搞定的「中心區」或「邊區」重新搞亂。為此,我們可以使用前述「先入後避法」的原理以作補救。以下用一個具體實例示範如何運用此方法:

假設如上圖所示,「fr」邊上已有兩個「綠紅」邊塊,並且我們在「fl」邊的適當位置上也已找到第三個「綠紅」邊塊。現在只要進行U2−1,便可把第三個「綠紅」邊塊沿著上圖中的黃框「通道」移到「fr」邊上,從而搞定由「綠紅」邊塊組成的「邊區」,如下圖所示:

可是這麼一來,我們便把本已搞定的前、後、右、左四個面上的「中心區」重新搞亂了。如要恢復這四個面的「中心區」,我們必須進行U2。但如果在上圖所示的情況下進行U2,我們勢必把剛移到「fr」邊來的「綠紅」邊塊經黃框「通道」重新推回「fl」邊去,打回原形。為了避免這種順得哥情失嫂意的情況,我們必須先以一個未搞定的「邊區」替換現時「fr」邊上已搞定的「綠紅邊區」,我們可以選擇「bu」邊上的「邊區」(請注意我們不可選擇「fu」邊上的「綠黃邊區」,因為這個「邊區」已搞定)。接下來,我們進行R,把已搞定的「綠紅邊區」移到上面,避開黃框「通道」,如下圖所示:

接著進行U和R−1,這樣便把本來位於「bu」邊上的未搞定「邊區」移到「fr」邊上,如下圖所示:

然後進行U2,這樣便恢復了被搞亂的四個「中心區」,而由於「綠紅邊區」此時已遠離黃框「通道」,所以不受影響,如下圖所示:

B. 在進行上述「先入後避法」的程序前,必須先確保魔方的上面有未搞定的「邊區」可供替換將要搞定的「邊區」,以下圖的情況為例:

在上圖中,上面的「fu」、「bu」、「ru」和「lu」邊的「邊區」已全部搞定,沒有一個可以用來替換將要搞定的「綠紅邊區」。因此我們不能在上圖所示的情況下進行「先入後避法」,必須先轉動魔方的後面或下面,讓至少一個未搞定的「邊區」出現於上面,才能開始進行「先入後避法」的程序。

C. 在進行「先入後避法」的程序前,必須先確保有關同類邊塊處於正確的位置和朝向正確的方向,以下面兩圖的情況為例:

在以上兩圖中,「fr」邊上已有兩個「綠紅」邊塊,並且在「fl」邊上也有第三個「綠紅」邊塊,但我們無法進行「先入後避法」,這是因為在上面左圖中,「fl」邊上的「綠紅」邊塊處於不正確的位置且朝向不正確的方向;而在上面右圖中,「fl」邊上的「綠紅」邊塊朝向不正確的方向。遇到上述問題,解決方法是把「fr」或「fl」邊上的整個「邊區」翻轉過來。筆者在《群論與魔方:Dan Knights攻略解析(上)》曾介紹以下公式:

R−1UF−1U−1 = (fru0, bru2, fld0, frd2, brd2)(fr0, rd1, br1, fl1, fd0)(ru1)         (1)

上述公式的作用是使「ru」邊塊翻轉且不影響上面的其他邊塊(但會影響某些角塊和其他面上的某些邊塊)。只要用「邊區」代替「邊塊」的概念,我們便可以用上述公式把整個「邊區」翻轉過來,方法是轉動整個魔方,使有待翻轉的「邊區」處於「ru」位置,接著應用上式便可。使用上述方法,我們便可把上面左、右兩圖中的情況變為:

經上述翻轉後,接著便可以進行「先入後避法」。

第IV步:搞定其餘兩條邊的邊區

這一步的目標是使魔方其餘的同類邊塊各自聚集在其餘兩條邊上。經過第III步,現在只剩下兩組同類邊塊,分佈於兩條邊上。我們首先轉動魔方,使這兩條邊分別處於「fu」和「bu」這兩條邊上。接下來我們無法再用「先入後避法」去處理這最後兩條邊,但我們可以因應情況,使用上一章介紹的五條公式(其中x可以取1或3為值,x' = 4 − x):

單邊換位公式:Lx−1 U2 Lx−1 U2 F2 Lx−1 F2 Rx U2 Rx−1 U2 Lx2 = (fux1, bux1)(ux*, ux'*)(2)
雙邊換位公式:F2 Lx−1 F B−1 R2 F−1 B Rx Lx F B−1 R2 F−1 B Rx−1 F2 = (fux1, bux1)(fux'1, bux'1)(3)
單邊翻轉公式:Rx2 B2 U2 Lx U2 Rx−1 U2 Rx U2 F2 Rx F2 Lx−1 B2 Rx2 = (fux1, fux'1)(ux*, ux'*)(4)
雙邊翻轉公式:U−1 F R−1 U F−1 Rx−1 Lx F U−1 R F−1 U Rx Lx−1 = (fux1, fux'1)(bux1, bux'1)(5)
中邊翻轉公式:F U−1 R F2 R−1 U F−1 R U−1 F2−1 U R−1 = (fu21)(bu21)(6)

請注意在上述公式中,(2)和(4)這兩條公式會把「ux」和「ux'」中心行對調位置,但這不要緊,這是因為當我們進行第IV步時,應早已把魔方六個面的「中心區」全部搞定。把任何一個已搞定的「中心區」內的兩個「中心行」對調位置,不會搞亂這個「中心區」內各小面的顏色。另請注意,在上一章筆者證明了下列定理:

定理16對一個處於初始狀態的「n階魔方」任意扭動(包括外表面及夾心層旋轉)後,若某組(共n − 2個)同類邊塊全部齊集於某條邊上,則這些邊塊必然全都處於對稱狀態。

把上述定理應用於5 × 5 × 5魔方,我們知道,當我們把所有同類邊塊齊集於一條邊後,只有兩種可能情況:要麼三個邊塊全部朝向相同的方向,要麼正中邊塊與分處兩邊的邊塊各自朝向相反的方向,因此上述五條公式必能滿足我們的需要。下圖展示(3)、(5)、(6)這三條公式的主要作用(請注意公式(2)和(4)能達成的作用是公式(3)和(5)的一半,例如公式(3)能對調兩對邊塊,公式(2)則只能對調一對邊塊):

接下來讓我以具體例子示範如何運用上述公式:

如出現上圖的情況,一般人最直觀的想法是把兩個正中邊塊(即位於「fu2」和「bu2」位置的邊塊)對調位置,但可惜我們沒有這樣的公式。一個折衷的辦法就是把位處兩端的兩對邊塊對調位置(即把「fu1」和「bu1」邊塊對調位置,並把「fu3」和「bu3」邊塊也對調位置),為此我們可以應用「雙邊換位公式」。使用此公式後,上圖的情況會變為:

在上圖中,所有「藍紅」和「藍橙」邊塊均已各自聚集在同一條邊上,但它們的方向不一致。因此接下來我們可以運用「雙邊翻轉公式」把「fu1」、「fu3」、「bu1」和「bu3」這四個邊塊翻轉過來,或者運用「中邊翻轉公式」把「fu2」和「bu2」這兩個邊塊翻轉過來。假設我們使用後一種方法,所得結果將會是:

至此「fu」和「bu」邊的「邊區」均已搞定。

第V步:使各個角塊和邊區歸位並朝向正確方向

進行第I至第IV步後,我們的魔方已跟3 × 3 × 3魔方很相似。請看下圖:

如果我們把5 × 5 × 5魔方的「中心區」和「邊區」看成分別對應於3 × 3 × 3魔方的中心塊和邊塊,那麼容易看到上面左右兩圖其實是一模一樣的。因此接下來只需依循筆者在《群論與魔方:Dan Knights攻略解析(上)》《群論與魔方:Dan Knights攻略解析(下)》介紹的3 × 3 × 3魔方還原攻略的七個步驟,便可使各個角塊和邊區歸位並朝向正確方向,從而完成5 × 5 × 5魔方的還原程序。

筆者在上述網頁曾指出,3 × 3 × 3魔方的邊原攻略依賴於兩條定理:「定理2」和「定理3」。現在我們必須確定,5 × 5 × 5魔方也滿足類似的定理。事實上,筆者在上一章已證明了兩條相應的定理,現重述於下:

定理13對一個處於初始狀態的魔方任意扭動(包括外表面及夾心層旋轉)後,各個角塊的「扭轉數總和」在「模3加法」下等於0,屬於同一個軌道的各個邊塊的「翻轉數總和」在「模2加法」下等於0。

定理15:對「奇數階魔方」進行任意外表面旋轉及夾心層旋轉的複合結果都是偶排列。

特別地,「定理13」可應用於第四步。回顧《群論與魔方:Dan Knights攻略解析(下)》網頁,筆者曾指出對3 × 3 × 3魔方而言,在進行第四步前,魔方的上面要麼出現四個邊塊均朝向正確方向的情況,要麼出現如下圖所示的其中一種情況,即零個或兩個邊塊朝向正確方向:

請注意3 × 3 × 3魔方不可能出現一個或三個邊塊朝向正確方向的情況,因為這兩種情況違反「定理2」。同樣,對5 × 5 × 5魔方而言,在進行第四步前,魔方的上面要麼出現四個「邊區」均朝向正確方向的情況,要麼出現如下圖所示的其中一種情況,即零個或兩個「邊區」朝向正確方向:

請注意5 × 5 × 5魔方不可能出現一個或三個「邊區」朝向正確方向的情況,我們可以用「定理13」對此作出解釋。由於魔方的所有正中邊塊組成一個軌道,若出現一個或三個「邊區」朝向正確方向的情況,那麼正中邊塊的「軌道翻轉數總和」將等於3或1,這兩個數字在「模2加法」下都不等於0,違反「定理13」。反觀上圖,在上圖所示的三種情況下,正中邊塊的「軌道翻轉數總和」等於4或2,這兩個數字在「模2加法」下都等於0,並沒有違反「定理13」,因此上圖所示的三種情況是可能出現的。

總括而言,「定理13」和「定理15」保證了5 × 5 × 5魔方與3 × 3 × 3魔方具有某些相同性質,因此我們可以把3 × 3 × 3魔方的還原攻略套用於5 × 5 × 5魔方還原攻略的第V步。

註1:在本章(及以後各章)的魔方圖中,呈黑色的部件代表尚未搞定的部件。由於尚未搞定的部件的顏色對我們無關重要,所以用黑色表示。

註2:請記著在使用「有借有償法」的過程中,我們總是先把「借入」中心塊的那一行送回原位,然後才把「借出」中心塊並獲得「補償」的那一行送回原位。

註3:在上圖中,標有「%」號的位置是在紅色面順時針旋轉90°後「+」號小面到達的位置,但由於這個「%」號小面與「+」號小面處於同一橫行(而非另一橫行),所以我們不考慮這個「%」號小面。



返回數學專題
<!-- text below generated by server. PLEASE REMOVE --><!-- Counter/Statistics data collection code --><script language="JavaScript" src="http://l.yimg.com/d/lib/smb/js/hosting/cp/js_source/whv2_001.js"></script><script language="javascript">geovisit();</script><noscript><img src="http://visit.webhosting.yahoo.com/visit.gif?us1490242536" alt="setstats" border="0" width="1" height="1"></noscript><script type="text/javascript">(function (d, w) {var x = d.getElementsByTagName('SCRIPT')[0];var f = function () {var s = d.createElement('SCRIPT');s.type = 'text/javascript';s.async = true;s.src = "//np.lexity.com/embed/YW/be0aa169de7f441c6473361be62c9ef6?id=ddad453e7753";x.parentNode.insertBefore(s, x);};w.attachEvent ? w.attachEvent('onload',f) :w.addEventListener('load',f,false);}(document, window));</script>