[心得] 讓完全新手參考用的2階魔術方塊解法
前言
起因是有完全沒接觸過魔術方塊的新手,想從最簡單的2階魔術方塊開始學起。
所以就用了我覺得最好理解的解法,寫下這篇內容當做教材,
順便貼上來和板友分享。雖然還沒實際拿去教XD
也非常歡迎大家任何的意見交流,畢竟這教法可能還有不少改進空間。
第1步:2階魔術方塊的等價表示
對於2階(2 ×2 ×2)魔術方塊的相對兩面,它們的轉動是等價的。
因此可以選定8塊方塊中的1塊方塊為基準,將它放到後方,其他3面7塊方塊朝前,
之後只轉動朝前的3面,如下圖所示。
https://imgpoi.com/i/XRKIVD.png
以後都將像下圖這樣,把轉動2階魔術方塊簡化為7格方塊在3條軌道上輪轉。
https://imgpoi.com/i/XRKLAV.png
第2步:完成後方3格
當1塊方塊移動時,只要它沒有透過不同軌道進出下圖黑色的中央位置,
https://imgpoi.com/i/XRKFXE.png
那麼當它回到出發點時就會維持與一開始相同的方位;反之則可以旋轉它。
因此已經排好的方塊只要不進入中央位置,在需要避讓時還是可以被移動一下。
透過這個原則便可以很容易完成下圖黑色的後方3格,
https://imgpoi.com/i/XRKJIB.png
把正確位置在這裡的方塊移過來並轉到正確方位。
第3步:移動前方4格
這裡把已經完成的後方3格分別標示為x、y、z,
還沒完成的前方4格分別標示為a、b、c、d,如下圖所示。
https://imgpoi.com/i/XRK65G.png
遵循之前的原則,
首先要在不讓x、y、z進入中央位置的條件下把a、b、c、d移到正確位置。
滿足這個前提的轉法有很多,最簡單的像是:
1. x朝向z(往b)轉1格;
https://imgpoi.com/i/XRKDC9.png
2. y朝向z(往a)轉1格;
https://imgpoi.com/i/XRK2P5.png
3. x轉回原位;
https://imgpoi.com/i/XRKMVM.png
4. y轉回原位。
https://imgpoi.com/i/XRZ5A2.png
轉完後a、b的位置互換,c、d的位置也互換。
這個轉法之後可以用到,把它記為[z←x, z←y],
表示x先朝向z然後y朝向z轉,之後也是先x後y復原。
因此[z←y, z←x]就是[z←x, z←y]的反轉,
其他像[y←z, y←x]、[x←y, x←z]也都是這類轉法,
其實活用它們就有辦法解完2階魔術方塊了。
[z←x, z←y]對a、b、c、d的移動可以用輪換符號寫成(ab)(cd)。
可以記憶為目的地z正下方的兩格互換,旁邊兩格也互換,
同理[y←z, y←x]對應(ac)(bd),[x←y, x←z]對應(ad)(bc)。
數學物件:置換
由於開始用到了輪換符號,並且後面會使用置換運算來移動前方4格,
因此先花了一些篇幅在這邊做個簡單介紹,如果對置換熟悉的話可以先跳過這段。
一些元素位置掉換的動作被稱為置換,
並且多個置換能藉由依序執行各自的移動結合成1個新的置換。
而像上面a、b、c、d所有的移動方式搭配置換的結合構成了4階置換群S4。
置換能透過輪換符號來表示,例如(abcde)代表a←b←c←d←e←a這個移動,
並且(bcdea)、(cdeab)、(deabc)、(eabcd)也都等於是這個移動的寫法;
而(aedcb)就是(abcde)的反置換,代表反過來的移動a→b→c→d→e→a。
(ab)這種2階置換代表2個元素交換,反置換就是(ab)本身。
另外像是置換(abc)、(bcd)的結合寫成(abc)(bcd),先執行寫在前面的移動。
S4總共有24個置換,包含:
空置換1個,(),代表沒有任何移動,而像(a) = a←a這種也等於空置換
2階置換共6個,(ab)、(ac)、(ad)、(bc)、(bd)、(cd)
互斥2階置換的結合共3個,(ab)(cd)、(ac)(bd)、(ad)(bc),元素兩兩交換
3階置換共8個,(abc)、(abd)、(acb)、(acd)、(adb)、(adc)、(bcd)、(bdc)
4階置換共6個,(abcd)、(abdc)、(acbd)、(acdb)、(adbc)、(adcb)
顯然S4中所有置換都能寫成2階置換的結合,畢竟所有移動都能透過元素兩兩交換達成。
觀察一些置換的結合,例如:
(ab)(abcd) = (a←b←a)(a←b←c←d←a) = b←c←d←b = (bcd)
(abcd)(ab) = (a←b←c←d←a)(a←b←a) = c←d←a←c = (cda) = (acd)
(cd)(abcd) = (cd)(cdab) = (dab) = (abd)
也能得到
(abcd)
= (ab)(bcd) = (ab)(bc)(cd)
= (acd)(ab) = (ad)(ac)(ab)
= (cd)(abd) = (cd)(bd)(ad)
但3階置換就無法組合出2階置換或4階置換,這點可以用3階置換屬於偶置換,
而2階置換與4階置換屬於奇置換來說明。再觀察更多置換的結合:
(abcd)^2 = (a←b←c←d←a)(a←b←c←d←a) = (a←c←a)(b←d←b) = (ac)(bd)
(ac)(abcd) = (a←c←a)(a←b←c←d←a) = (a←b←a)(c←d←c) = (ab)(cd)
(abcd)(ac) = (a←b←c←d←a)(a←c←a) = (a←d←a)(b←c←b) = (ad)(bc)
可以得到像是 (ac) = (acbd)^2 (adcb) 之類的等式,
藉此能發現S4中的置換也都可以寫成4階置換的結合。
最後下面這類4階置換與3階置換的結合之後也會用到:
(abc)(abcd) = (a←b←c←a)(a←b←c←d←a) = a←c←d←b←a = (acdb)
(abcd)(abc) = (a←b←c←d←a)(a←b←c←a) = a←c←b←d←a = (acbd)
第3步(續):移動前方4格
回到2階魔術方塊,
https://imgpoi.com/i/XRK65G.png
除了[z←x, z←y]、[y←z, y←x]、[x←y, x←z]這類轉法,
另一種不讓x、y、z進入中央位置的轉法是:
1. x朝向y(往c)轉1格;
https://imgpoi.com/i/XRZ9XD.png
2. y帶著x朝向z(往a)轉1格;
https://imgpoi.com/i/XRZGIV.png
3. 此時a、c、b、d便能隨意轉動,分別對應(acbd)、(acbd)^2 = (ab)(cd)、
(acbd)^3 = (adbc);
https://imgpoi.com/i/XRZB5E.png
4. 復原。
https://imgpoi.com/i/XRZACB.png
https://imgpoi.com/i/XRZRPG.png
這裡把這個轉法記為[y←x, z←y],表示一開始x先朝向y然後一起朝向z轉,
預設如圖中只在步驟3逆時針轉1格,得到對應關係
[y←x, z←y]:(acbd)、[y←x, z←y]^2:(ab)(cd)、[y←x, z←y]^3:(adbc)
同理
[x←z, y←x]:(cbad)、[z←y, x←z]:(bacd)
這種轉法很容易在途中看出對應的4階置換,可以不用特別去記憶。
觀察a、b、c、d從正確位置到目前位置的移動:
1. 若是(abc)這種3階置換,
順著相同方向做1次4階置換如[y←x, z←y]^3:(adbc)變為4階置換(adcb)接3.,
方向相反也沒關係就變為2階置換接2.;
2. 若是(ab)這種2階置換,
做1次[y←z, y←x]:(ac)(bd)變為4階置換(dacb)
或[x←y, x←z]:(ad)(bc)變為4階置換(cadb)接3.;
3. 若是(abcd)這種4階置換,做1次反置換[x←z, y←x]:(dcba)變為空置換;
4. 若是(ab)(cd)這種兩兩交換,做1次[z←x, z←y]:(ab)(cd)變為空置換。
這樣移動前方4格就完成了。
第4步:旋轉前方4格
此時a、b、c、d每1格處於
方向正確、逆時針方向自轉1格、或順時針方向自轉1格3種狀態之1。
觀察轉2次[z←x, z←y],此時a、b、c、d都沒有移動,
但a、b原地逆時針轉動了1格,c、d原地順時針轉動了1格,記為 a b c^2 d^2。
可以使用與前面相同的記憶法:z正下方的兩格往同一邊轉,旁邊兩格往另一邊轉。
a、b、c、d每1格的自轉可以用3階循環表示,分別構成3階循環群C3,
共同記為 a^p b^q c^r d^s。
亦即逆時針方向轉動2格等於順時針方向轉動1格,
順時針方向轉動2格等於逆時針方向轉動1格,
而逆時針方向轉動3格或順時針方向轉動3格便回到原方向。
由於2階魔術方塊轉動的不變性,沒辦法只單獨旋轉其中1塊方塊。
也就是在第3步魔術方塊的所有狀態為S4 ×C3 ×C3 ×C3,在第4步為C3 ×C3 ×C3。
觀察a、b、c、d從正確方向到目前方向的自轉,此時除了完全正確的情況,
其他的可能性只有:
1. 某3格往同方向自轉,例如 a b c,
隨便選1個轉法例如[z←x, z←y]^2:a b c^2 d^2,
[z←x, z←y]轉2或4次變為 c^2 d 接2.;
2. 某1格往逆時針轉,另1格往順時針轉,例如 a b^2,
選1個轉法讓這2格往反方向自轉,例如[y←z, y←x]^2:a b^2 c d^2,
[y←z, y←x]轉2或4次變為 a^2 b c d^2 接3.;
3. 某2格往逆時針轉,另2格往順時針轉,例如 a b c^2 d^2,
一直轉對應的轉法[z←x, z←y]^2:a b c^2 d^2 就可以。
2階魔術方塊到這裡便解完了!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.81.202 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Rubiks/M.1732536030.A.880.html