1. 程式人生 > >Alex Fung魔方轉法學習記

Alex Fung魔方轉法學習記

郵件 center mat asics ner 上下 一段 let mov

我學了Alex Fung魔方轉法,這是一種精確的數學法,且是一種思路,一個系統解決方案,一種原理,不用死記硬背公式。

這是一篇學習記,所有用到的算法必須去原文查看具體的數學公式和Java Applet的演示。因為我還不會編程演示,所以本文不self-contained,而像是一個數學課抄錄的筆記,只是記錄我的學習過程。 首先,請拿紙和筆——數學公式必須自己寫一遍,自己推導一遍,使得自己看到那些符號,心裏不發怵,所以寫只是為了變得信任眼熟親切記得。 魔方基礎的令人討厭氣噎眼花繚亂終於整個頭腦都擰巴了的術語還得學:前Front後Back左Left右Right上Up下Down面,順(Clockwise,即我看著魔方的這一面順時針轉)逆(逆時針),比如底面逆,我就把魔方舉得高過頭看它,那個逆時針。學魔方要老老實實、很僵硬,如果一上來就翻來翻去,會暈過去的。要當它有西瓜那麽大,懸空固定在那裏,就是那個三面朝我,三面看不見的固定式樣(如下圖),左手轉前面Front,右手轉右面Right。其實實際操作起來就是左手右手,但是和左面右面混淆了,為了精確,數學公式使用嚴格的術語F面(我Fancy的左手)、R面(我Right的右手)。 讓這些術語做為將頭腦擰成魔方的熱身。 技術分享
其次,請把下列數學書一頁一頁地點開攤好,可以直接看,直接一步一步練習,也可以先跳過,按照我記錄的過程往下走,遇到數學公式返回去查找公式和演示。公式在我的電腦上顯示為亂碼,Fung說是因為文章寫成於20多年前,Windows的編碼亂了,需要用自己的話在紙上改寫。例如:CT1 º CM1R-1ÅCM1F,改成CT1 = (CM1R-1)(CM1F)。
Solving the Rubik‘s Cube Systematically
  • Background and Naming of the Parts
  • Design Theory
  • Moving Corners
  • Moving Edges Part I
  • Moving Edges Part II
  • Completing the Cube
  • Afterwards
Fung解法的整體思路是:先角後棱再中心,先轉位置再轉面。具體來說,(1)先底4角,再頂4角;(2)然後底三棱,頂三棱,最後頂和底兩棱,得到兩面正確;(3)中間層的棱;(4)最後中心。每一步驟都是先把那一塊轉到那個位置去(動作是move),先不管方向(orientation),然後再轉方向:角擰轉(twist),楞翻轉(flip)。 Fung解法像個全集,我的過程是一個子集。 1)底面先轉齊。請用白底面,向Fung解法看齊,使用CM1和CT1兩個轉法(見Moving Corners),CM1用於轉位置,CT1用於轉面。這兩個操作是角操作的基礎。不能因為我太會轉齊一面了,就自己轉,不,這是一個精確的數學樂高,CM1和CT1是基礎塊。 2)再轉頂四角,先轉位置再轉面。轉位置用CM3,轉面用CT2。 兩角對換,有兩種情況: (i)同邊兩角對換。頂面用R逆,先將一角轉正,剩下三角再對換,另兩角的正確沒意義,換句話說,三角輪換中包含有兩角相對位置正確。有時候,我一看就是一個天然的三角對換,其實我得承認,那是湊巧,我不用親自做“R逆”這一步了。 (ii)對角兩角對換,先用一次CM3,將情況變成(i),再用一次CM3。 關於轉面,例如轉黃面,有三種情況,(i)兩角的黃色面一個沖前,一個沖後,那就按示例做CT2,先右手再左手,妥妥的。(ii)如果兩角的黃色面同邊都沖右,也是CT2,但鏡像,先左手再右手。(iii)如果一角黃色面朝上,一角黃色面朝右,也是CT2,但做完了,有一個角對了,有一個角還得跟剩下的一個角做CT2。 CM3和CT2是成功的秘訣,因為其他塊都不動。如果您已經會把下兩層轉齊,那麽在頂面嘗試了頗為復雜高斷的CM3和CT2,轉完了,發現下兩層毫發無傷,那場面真是很嚇人的。 3)然後頂三棱。 這一步轉對位置的同時,方面也是對的,見Moving Edges Part I。 EM1BR和EM1BL是將側邊棱轉到頂的兩個基礎操作,簡記為R,BL。我非得自己再添亂搞出新術語嗎?因為後面有個棱轉面的操作(EF2D),用的是這兩個操作的正逆組合,那個操作耗掉了我一天一夜不止,在頭腦裏漸漸清晰,也漸漸產生這個簡記法。 當頂的一條棱調整時,直下的底的棱也變了(EM1BR是頂棱,EM1BL是背後看不見的那條棱),於是變成底三棱。每轉一條棱,確保下面的棱是那個不對的棱,是個buffer,是我們不關註的buffer。 最後上下兩條棱同時擰正(EM1BR是頂棱,EM1BL是背後看不見的那條棱),此時目標底棱在頂面,目標頂棱在側面。(如果您在這裏不停地失敗,我只好幸災樂禍,到底還是掉坑裏去了——這裏是有技術含量的,而且我感覺我還沒徹底弄清楚。) 這樣兩面整齊,將魔方像是三明治那樣立起來,我們來調整混亂的夾層。 4)中間四棱。 轉位置:三棱輪換EM3,當發現兩棱需對換的情況,先轉90度,鉚釘一個,剩下三棱輪換,原理同頂四角。 兩對棱直線對換EM4。我確實用到一次,但其他時候都用EM3。 轉面用EF2D:R逆,BL,U,BL逆,R,U逆。用到上面說的箭記法了,寫出來才短短這麽一行亂碼,做起來是大汗淋漓、廢寢費事、青面獠牙、日月星辰早已變換。 5)最後中心調整。 兩對:直線對換CM2
C-1M2,或者拐彎對換CMC-1M。當我看到所有塊都好了,只有中心不對時,真是看到怪物了,但是這個轉法,四兩撥千斤,too good to be true。 最後說一個錯覺:我轉齊底面,就節約了很多步驟,那我先不浪費我的經驗(那我也是費了心血的呀),先轉齊兩層,那不得更快? 我先用蠻力轉齊下兩層,頂面用CM3,CT2這種環保法。第一次運氣好,棱位置對,只需要兩棱翻面,但其他時候棱位置不對,則一點沒節約,還把轉好的中間層弄得亂七八糟,搞得我很心痛,我感覺那個運氣好的概率好像買彩票的,故曰:錯覺。 Alex Fung說他十多年不轉魔方,一旦轉起來,照樣能轉好,不像記公式,一段時間不轉,就不會轉了。這句話直接說中我的痛處。待時日,我確認一下總能轉出來。 In the honor of Alex Fung, 關於Fung解法有反饋的話,可以直接寫郵件給他,他的個人網頁有聯系方式。

Alex Fung魔方轉法學習記