筆者在《群論與魔方:排列的表示法與運算》中介紹了排列的表示法、複合和求逆運算以及奇偶性的問題。在本章筆者要把這些知識應用於魔方的各種操作,從而得出一些重要的結果和定理,以便日後應用於解釋破解魔方的原理。
正如筆者在《群論與魔方:群論基礎知識》中指出,我們可以把魔方的操作看成對魔方小面的排列。不過,魔方的小面並非任意排列,而是組成一個個角塊、邊塊和中心塊,例如組成某個角塊的三個小面在任何操作下都仍會聚在一起,不會被打散。因此之故,以下筆者將把魔方的操作重新看成對各個角塊、邊塊和中心塊的排列。可是,這裡有一個複雜問題。正如筆者在《群論與魔方:魔方的基本概念》所指出的,魔方的操作不僅會改變各個角塊、邊塊和中心塊的位置,而且可能令它們發生扭轉或翻轉,所以在寫出魔方各種操作的「循環式」時,不僅要寫出這些操作對各個角塊、邊塊和中心塊位置的影響,而且要寫出這些操作會否引致扭轉或翻轉。
下表列出魔方六個基本操作F、B、R、L、U、D的「循環式」。請注意下列「循環式」所代表的是各種操作對
魔方角塊、邊塊和中心塊(而非小面)的影響,「循環式」還以下標「0/1/2」(以下稱為「扭轉數」)標明角塊扭轉的情況,以及以下標「0/1」(以下稱為「翻轉數」)標明邊塊翻轉的情況:對於角塊而言,扭轉數「0」、「1」和「2」分別代表「正常」、「順時針扭轉」和「逆時針扭轉」;對於邊塊而言,翻轉數「0」和「1」分別代表「正常」和「翻轉」(註1)。
操作 | 循環式 |
---|---|
舉例說,根據上表,F會把本來位於「fru」的角塊移至「frd」位置,並且使該角塊發生「逆時針扭轉」;而本來位於「flu」的角塊則移至「fru」位置,並且發生「順時針扭轉」。讀者可自行用魔方驗證上表中的各個「循環式」。上表顯示了採用「循環式」的優點,雖然魔方共有8個角塊、12個邊塊和6個中心塊,但每個操作只會影響4個角塊和4個邊塊,所以上表中的「循環式」十分簡潔,只包含這4個角塊和4個邊塊的名稱。
表1只列出了六種基本魔方操作的「循環式」。至於其他操作的「循環式」,則可以透過複合和求逆運算求得。舉例說,順時針旋轉前面180° (即F2)的「循環式」便可以透過以下運算求得:
F2 | = (fru1, frd2, fld1, flu2)(fr0, fd0, fl0, fu0) • (fru1, frd2, fld1, flu2)(fr0, fd0, fl0, fu0) |
= (fru0, fld0)(frd0, flu0)(fr0, fl0)(fd0, fu0) |
請注意以上運算不僅涉及位置的變化,而且還涉及扭轉和翻轉的疊加。以「fru」為例,在進行第一次F後,原在這個位置的角塊移到「frd」位置,並且發生「逆時針扭轉」;進行第二次F後,有關角塊再從「frd」位置移到「fld」位置,並且發生「順時針扭轉」。由於一順一逆互相抵消,結果有關角塊沒有發生扭轉,所以F2的結果是使原在「fru」位置的角塊移到「fld」位置,並且沒有發生扭轉。
對於上述「一順一逆互相抵消」的過程,我們亦可以從「模3加法」(Modulo 3 Addition)的角度來理解。「模3加法」就是僅以0、1和2這三個數字進行的加法。在進行普通加法後,如果所得結果大於2,便以該結果被3除後所得的餘數代替原來的結果,這樣在「模3加法」下所得的結果也只局限於0、1和2這三個數字。我們一般用「+3」代表「模3加法」運算。以2 +3 2為例,由於普通的2 + 2的結果4大於2,所以我們以4被3除後所得的餘數1代替4,由此得2 +3 2 = 1。
有了「模3加法」的概念,便可以把魔方複合操作下各個角塊的最終扭轉數看成「模3加法」的結果。仍以上述F2運算中的「fru」角塊為例,以「fru」輸入第一個F,所得輸出項為「frd」,並且這個輸出項的扭轉數為2;接著以「frd」輸入第二個F,所得輸出項為「fld」,並且這個輸出項的扭轉數為1。把以上兩個輸出項的扭轉數加起來,由於2 +3 1 = 0,所以這個角塊最終沒有發生扭轉。我們可以把上述計算過程總結如下:某個角塊在某複合操作下的最終扭轉數等於在計算上述複合操作對該角塊的影響的過程中,所有輸出項的扭轉數在「模3加法」下的總和。
基於類似的推理,我們亦可以把魔方複合操作下各個邊塊的最終翻轉數看成「模2加法」的結果,即某個邊塊在某複合操作下的最終翻轉數等於在計算上述複合操作對該邊塊的影響的過程中,所有輸出項的翻轉數在「模2加法」下的總和。
至於F3,由於順時針旋轉前面270°等於逆時針旋轉前面90°,透過求逆運算便容易求得F3:
當然我們還可以進行不同操作之間的複合,以下就讓我們計算R−1•D−1:
R−1•D−1 | = (fru2, frd1, brd2, bru1)(fr1, rd1, br1, ru1) • (frd0, fld0, bld0, brd0)(fd0, ld0, bd0, rd0) |
= (fru2, fld1, bld0, brd0, bru1)(frd2)(fr1, fd1, ld0, bd0, rd0, br1, ru1) |
請注意在上述複合操作下,原在「frd」位置的角塊在R−1作用下跑到了「brd」位置,接著在D−1作用下又返回「frd」位置。雖然這個角塊最終沒有改變位置,但由於在上述複合計算過程中的兩個輸出項的扭轉數(即第一個操作中「brd」的扭轉數2和第二個操作中「frd」的扭轉數0)在「模3加法」下的總和為2,這表示這個角塊發生了逆時針扭轉,所以上述運算結果不可略去(frd2)這個括弧。
接著看一些與魔方操作有關的重要定理,首先我們有以下關於角塊和邊塊顏色標示的定理。
定理1: | 設某一角塊和某一邊塊在初始狀態時的顏色標示分別為「XYZ」和「VW」,經任意扭動(這裡指表1所示的操作)魔方後,該角塊的顏色標示只有以下三種可能:「XYZ」、「ZXY」和「YZX」,該邊塊的顏色標示則只有以下兩種可能:「VW」和「WV」。 |
以下證明上述定理。由於V和W的排列不是「VW」就是「WV」,無須證明邊塊的情況。以下只考慮角塊的情況,首先考慮對魔方進行一個操作後對各個角塊的影響。由於表1中每種操作只影響四個角塊,不妨逐一考慮每種操作對這四個角塊的影響。容易驗證,U和D都不會改變任何角塊的顏色標示;F、B、R、L則只會分別使前、後、右、左面角塊的顏色標示從「XYZ」變為「ZXY」或「YZX」,對其他角塊沒有影響。直觀地說,表1中每種操作對「XYZ」的影響不外乎以下三種:(1)沒有影響;(2)把最後一個顏色放到第一、二個顏色前面;(3)把最前一個顏色放到第二、三個顏色後面。
接著考慮對魔方進行多個操作後對各個角塊的影響。根據上段,經第一個操作後,原來的「XYZ」標示變為「XYZ」、「ZXY」和「YZX」三者之一。基於相同的推理,經第二...第三個操作後,對有關標示的影響也不外乎上述(1)、(2)、(3)三種,結果有關標示必然也為「XYZ」、「ZXY」和「YZX」三者之一,上述定理得證。
接著介紹以下關於角塊「扭轉數總和」和邊塊「翻轉數總和」的定理。
定理2: | 對一個處於初始狀態的魔方任意扭動(這裡指表1所示的操作)後,8個角塊的「扭轉數總和」在「模3加法」下等於0,12個邊塊的「翻轉數總和」在「模2加法」下等於0,而6個中心塊則維持不動。 |
以下證明上述定理。由於表1中六種操作都只影響角塊和邊塊,對中心塊沒有影響,所以中心塊維持不動。在初始狀態時,魔方的各個角塊和邊塊均處於「正常」狀態,所以其「扭轉數總和」和「翻轉數總和」都是0。接著考慮對魔方進行一個操作後對角塊「扭轉數總和」以及邊塊「翻轉數總和」的影響。根據表1,六種操作的「扭轉數總和」是6或0,「翻轉數總和」是4或0;而6或0在「模3加法」下都等於0,4或0在「模2加法」下都等於0,所以對魔方進行一次操作後,「扭轉數總和」和「翻轉數總和」仍然是0。
接著考慮對魔方進行多個操作後對角塊「扭轉數總和」以及邊塊「翻轉數總和」的影響。由於多個操作的複合可以被看成依次進行兩個操作複合的結果,所以以下只需考慮兩個操作複合的情況。把《群論與魔方:排列的表示法與運算》中提到的「排列複合運算性質」應用於魔方的複合操作,在計算兩個操作的複合過程中,魔方的每個角塊/邊塊在每個操作中都會恰好作為「輸入項」一次,並恰好作為「輸出項」一次。根據上一節的討論,每個角塊/邊塊的最終扭轉數/翻轉數等於所有「輸出項」扭轉數/翻轉數在「模3加法」/「模2加法」下的總和。因此對魔方進行兩個操作後,角塊「扭轉數總和」/邊塊「翻轉數總和」必然是第一個操作的角塊「扭轉數總和」/邊塊「翻轉數總和」在「模3加法」/「模2加法」下加上第二個操作的角塊「扭轉數總和」/邊塊「翻轉數總和」的結果,而把兩個0相加仍是0,所以對魔方進行兩次操作後,「扭轉數總和」和「翻轉數總和」仍然是0,定理得證。
最後還有以下關於魔方操作奇偶性的定理。
定理3:對魔方進行任意操作(這裡指表1所示的操作)的複合結果都是偶排列。
以下證明上述定理。首先看到「恆等操作」(即不對魔方進行任何操作)可以被看成0個對換的複合,所以「恆等操作」是偶排列。其次,根據《群論與魔方:排列的表示法與運算》的公式(3),表1中的六種操作都可以表達成偶數個對換的複合,例如
由此可見六種操作全都是偶排列。把任意個偶排列進行複合的結果可以寫成這些偶排列的對換表達式複合的結果(註2),由於任何偶數的任意倍數也是偶數,所以任意個偶排列的複合也包含偶數個對換,即偶排列,定理得證。
利用上述定理,便可判斷某些魔方配置是不可能的。首先,以下的配置是不可能的(以下各圖均假設除了所示位置或方向錯誤的角塊/邊塊外,魔方的其他角塊/邊塊都處於正確的位置和朝向正確的方向):
這是因為根據「定理2」,魔方角塊的「扭轉數總和」在「模3加法」下必須等於0,而上圖所示魔方的「扭轉數總和」是1。
其次,以下的配置也是不可能的:
這是因為根據「定理2」,魔方邊塊的「翻轉數總和」在「模2加法」下必須等於0,而上圖所示魔方的「翻轉數總和」是1。
最後,以下的配置也是不可能的:
這是因為根據《群論與魔方:排列的表示法與運算》,我們可以把對換看成把兩個元素對調位置。由此根據「定理3」,對魔方進行任意操作的複合結果都必然是對魔方的角塊/邊塊進行偶數次對調的結果,但上圖所示的魔方配置卻是進行了一次對調的結果(即對調「fu」邊塊和「fr」邊塊),違反「定理3」。
註1:表1並不包括「夾心層旋轉」和「整個魔方旋轉」的「循環式」,這是因為這兩類旋轉對於破解魔方來說不是必需的。這兩類旋轉的「循環式」會留待日後討論魔方的變換「花式」時才作介紹。