跳轉至內容

如何解魔方

25% developed
來自華夏公益教科書,開放的書籍,為了開放的世界
Scrambled Rubik's Cube. Si
打亂的魔方。
如何解魔方

存在多種符號;請參考這個 符號指南.

簡要說明

  • 魔方有六個面,分別為前面、後面、左面、右面、上面和下面。它們通常用一個字母的縮寫來表示。
  • 在下方的等軸測圖中,當一個角朝向你時,你可以看到 F、R 和 U 面。F 面在左邊。
  • 動作表示為對每個動作的一次外部面的四分之一旋轉(90 度)。這意味著中心方塊的顏色不會改變。在我們的圖中,F 為藍色,R 為紅色,U 為黃色。其他三個顏色通常為橙色(紅色對面)、綠色(藍色對面)和白色(黃色對面)
  • 該面的層的四分之一旋轉預設順時針。逆時針旋轉通常被稱為“反向”並用 ' 表示,例如,R'。(' 通常讀作“素數”、“撇號”、“勾號”、“逆時針”、“反向”或“i”表示反向)。旋轉半周(180 度)用數字“2”表示,例如,R2(表示按字母縮寫後的兩次四分之一旋轉)。
  • 要檢視其他三個顏色的側面發生了什麼,請將整個魔方旋轉,描述為沿xyz 空間軸旋轉,所有軸都指向頁面外。x 是 R,y 是 U,z 是 F,但由於這種動作也會改變中心方塊的顏色,因此很少使用它。
B D F L R U

解題示例

[編輯 | 編輯原始碼]

作為示例,讓我們考慮一個完整的解題過程。使用 25 步打亂來混合魔方。我們的示例打亂為

U B′ R2 D′ U′ R U2 B R′ B2 L2 R F2 R2 U2 R B U2 F2 L2 F2 D R B2 R2

解法為

R′ B R D2 F2 L U′ F U R′ D R F D F′ F′ D′ F U2 R′ D′ R U2 U′ F′ D′ F U U B′ D′ B U′ y2 F D2 F2 R F R′ B′ D F D′ B D F′ F2 D M D2 M′ D F2 (54 步)

存在多種解魔方的方法。這裡列出了在本華夏公益教科書中詳細描述的方法,然後在接下來的章節中簡要回顧其他方法。

經典方法

[編輯 | 編輯原始碼]

魔方的第一個廣泛宣傳的解法出現在 1980 年代初期,當時在書籍和文章中發表了相當多的解法。例如,參見 菲利普·馬歇爾的比較,比較了各種經典方法。這裡我們提到了大約 1981 年由大衛·辛格馬斯特[1]和詹姆斯·諾爾斯[2]提出的兩種解法。

其中一個關鍵觀察結果是,解題過程可以分解為幾個步驟。大多數“標準”經典方法都採用逐層解魔方的方式。例如,先解 1. 頂層的所有邊塊,2. 頂層的角塊,3. 中層或水平層的所有邊塊,4. 底層的所有邊塊,以及 5. 底層的角塊,最後完成解題。存在一些相關的變化,例如,步驟 2 和 3 可以組合起來(見下文 Fridrich 方法),或者步驟 5 通常分為先將塊放到正確的位置,然後調整它們的方位。關鍵是,這樣的步驟簡化了解題過程,因為存在可以有效地處理單個步驟的演算法(一系列的面旋轉)。解題方法不僅在步驟方面有所不同,而且在為單個步驟建議的演算法集方面也有所不同。

馬歇爾所述,許多較新的方法都源於這些早期的解法。這在下面列出的幾種方法中也很明顯,然而這些方法包含了許多改進。解題步驟已被修改,演算法集已被改進和最佳化,以適應不同的解題步驟。此外,一些早期方法沒有得到完整的解釋(或者存在差距),並且在演示方面也進行了許多改進。

接下來,我們將討論初學者方法,其目標是簡便性(通常是以效率為代價的),以及高階方法,這些方法可以提供更快和/或更短的解法(通常是以複雜性為代價的)。

初學者方法

[編輯 | 編輯原始碼]

不同作者對“初學者方法”的定義不同。初學者方法應該簡單,但什麼是簡單取決於個人,而且隨著經驗的積累會迅速改變。如 馬歇爾所述,一些早期的簡單方法需要 10 到 20 種演算法,並且需要 100 到 150 步才能解開魔方。例如,他報告說,使用 12 種演算法的諾爾斯方法平均需要 110 步,而新增涉及 20 種演算法的快捷方式後,需要 100 步。

如果一種現代方法只需要 5 種演算法或更少,就可以稱之為簡單。如果你習慣了使用 50 種以上演算法的進階方法,那麼 10 種或更少的演算法也屬於簡單。此外,這些演算法本身也不應該太長和複雜。一些最近的入門方法,用 5 種或更少的演算法,卻出乎意料地高效,只需要不到 100 步,在某些情況下甚至只需大約 70 步。與一些進階的魔方速擰方法相比,這相當不錯,這些進階方法平均需要 40 到 60 步,但使用 50 種以上演算法。

最近的入門方法

[編輯 | 編輯原始碼]

Rubiks.com 上的解題指南:Rubik's 網站上的指南似乎是經典的分層解法之一。它列出了 14 種演算法。 [1]

Heise 的入門方法:這是一個最佳化後的經典分層解法的代表例子。最初的策略歸功於大衛·辛格馬斯特。它需要四種演算法。(一些簡單的步驟被標記為直觀的,並不算作演算法,但這是常見的做法。)解題過程透過動畫演示。[2]

華夏公益教科書入門方法:在這些華夏公益教科書頁面上展示,這種分層解法使用 5 到 8 種演算法,具體取決於你如何計算它們。雖然可能在演算法數量上不是最優的,但它展示了一個相當成功的想法。在前兩層中,只解決了 4 個角塊中的 3 個和 4 個邊塊中的 3 個。把這些塊作為空閒空間,可以簡化一些後面的步驟。請參閱下面的 Petrus 方法,瞭解避免過早解決某些塊的經典塊構建方法的例子。

8355 方法:另一種分層解法,使用兩個塊作為工作空間。需要 3 種演算法。在這種情況下,工作空間允許與 Heise 的入門方法相比進行簡化。[3]

菲利普·馬歇爾的解法:一種邊優先解法,只依賴於 2 種演算法。據馬歇爾報道,平均只需要 65 步。請注意,上面的分層帶工作空間方法,如果將第一層三個角塊的解決推遲到所有邊塊都解決之後,就可以轉化為邊優先解法。馬歇爾方法透過使用一種特殊的 4 步演算法來解決所有邊塊,以及一種 8 步演算法來解決角塊,從而實現了簡單性。還有一些基本的設定步驟需要完成。[4]

單演算法方法:8355 方法和馬歇爾方法可以簡化為單演算法方法,請參閱 單演算法魔方解法Y 步法。基本上,有兩個基本的 4 步換位子,“S 步” "S-move" 和 “Y 步” "Y-move",它們被用於這些方法和其他方法來解決邊塊。事實證明,這些換位子也可以反覆應用,以取代 8355 方法和馬歇爾方法中的角塊演算法。效率會略有下降,但這樣就可以實現單演算法方法。另一種單演算法方法最初由卡米洛·弗拉迪米爾·德·利馬·阿馬拉爾開發[5],他稱之為“少即是多方法”或“阿馬拉爾方法”[6]

是否存在零演算法方法?答案是肯定的,因為單面旋轉不算作演算法,魔方當然可以用這些旋轉來解決。但是,演算法的理念是將單面旋轉組合成人類可以管理的東西。僅依靠“直覺”和單面旋轉還沒有產生入門方法。

總之,有一些最近的入門方法改進了經典的分層入門方法,雖然簡單可能意味著不同的東西。使用 1 到 4 種演算法的簡單方法是可能的,要點是,這少於 10 種或 20 種。儘管如此,對於初學者來說,他們可能更喜歡列印的 5 種或 10 種演算法清單,而不是一個只使用 1 種或 2 種演算法的不太明確的方法。另一方面,使用更少演算法的方法比更復雜的方法更容易記憶和理解。

“最後層演算法”:一些修復最後層的演算法 -

1. 製作十字架 -(如果你有一個水平條,則為 F R U R' U' F';如果你有一個後左鉤,則為 F U R U' R' F')

2. 匹配邊塊顏色 -(R U R' U R U2 R')

3. 固定角塊 -(U R U' L' U R' U' L)

4. 匹配角塊 -(D R' D' R)

更快的解法

[編輯 | 編輯原始碼]

雖然上面的方法可能對初學者來說很好,但它們太慢了,無法用於魔方速擰。最流行的速擰方法與上面的華夏公益教科書入門方法非常相似,只是步驟 2 和 3 被合併了,最後一層用兩步而不是三步來解決。這種常見方法的發明者是傑西卡·弗里德里希。使用這種方法,經過幾個月的刻苦練習,具有良好技巧和記憶力的速擰愛好者可以平均在 20 秒內完成。然而,要學習這種方法,你必須學習 78 種演算法。有一些方法一樣快,但需要記憶的演算法要少得多。以下是幾種流行的魔方速擰方法的簡要概述。

分層解法

[編輯 | 編輯原始碼]

弗里德里希方法:一種非常快的先兩層 (F2L) 方法,首先在一個面上解決十字架,然後繼續解決前兩層,將邊塊和角塊組合在一起,並放入它們的中。然後用兩步解決最後一層,首先定向所有塊(最後層上一色),然後排列它們(解決最後層周圍的環)。基本方法有 78 種演算法(不包括它們的逆演算法),被認為是目前使用最快的解法之一。[7]

F2L 替代方法:遵循與弗里德里希方法相同原則的方法,但使用不同的演算法。許多演算法是共享的,但有一些區別,所以應該有一個適合你的手指。

  • 鮑勃·伯頓:[8]
  • Shotaro 'Macky' Makisumi:[9]
  • speedcubing.com 合集:speedcubinglovers.com

ZB 方法:這種方法是由羅恩·範·布魯赫姆茲比格涅夫·茲博羅夫斯基在 2003 年獨立開發的。在解決十字架和三個 c/e 對之後,在定向 LL 邊塊的同時解決最終的 F2L 對。這被稱為 ZBF2L 或 ZBLS。最後一層可以用一種演算法來解決,稱為 ZBLL。最終的方法需要數百種演算法。拉斯·範登伯格的網站上有 ZBF2L 演算法,用於他的 VH 系統。[10][11] 上也有一個更新的 Google 表格。ZBLL 演算法可以在道格·李的網頁上找到。[12]

ZZ 方法:這種方法 由茲比格涅夫·茲博羅夫斯基於 2006 年建立,他是 ZB 方法的共同創造者。它有三個基本步驟:EOLine、F2L 和 LL。[13] [14] EOLine 代表邊塊定向線。邊塊的定向被定義為好或壞。好意味著邊塊可以用 R、L、U、D、F2 或 B2 的組合來移動到正確的位置。壞意味著需要 F、F'、B 或 B' 移動才能將其移動到正確的位置。任何 F、F'、B 或 B' 移動都會導致該層上的四個邊塊從其當前狀態(好或壞)變為相反的狀態。EOLine 的 Line 部分是在魔方底部形成一條線,它由 DB 邊塊和 DF 邊塊位於正確的位置組成。下一步是 F2L,先兩層。它使用塊構建技術來解決 F2L 中剩餘的兩個 1x2x3 塊,只使用 R、U 和 L 移動。這樣可以非常快速地解決 F2L,因為它不需要魔方旋轉。ZZ 方法的最後一步是 LL,最後一層,可以根據所使用的演算法將其分成多個步驟或保持為一個步驟。這種方法有兩種主要方法:OLL [15] 和 PLL [16],LL 的定向和排列;以及 COLL [17] 和 EPLL [18],角塊 OLL 和邊塊 PLL。第一種方法,OLL 和 PLL,是用 7 種演算法之一來解決頂層 (OLL),然後將邊塊和角塊排列到它們正確的位置 (PLL),這需要 21 種演算法。解決 LL 的第一種方法總共需要 28 種演算法。解決 LL 的第二種方法是用一種演算法解決頂層和角塊 (COLL),然後解決邊塊 (EPLL)。COLL 需要 40 種演算法,EPLL 需要 4 種演算法,總共 44 種演算法。第二種方法更快,因為 EPLL 的識別和執行更容易。

VH 方法:拉爾斯·範登伯格丹·哈里斯 創造,作為從弗里德里希方法到 ZB 方法的過渡方法。首先,使用弗里德里希方法或其他方法解決 F2L,不包括一對角邊。然後將最後的一對角邊配對,但不要插入。然後將其插入 F2L,同時將 LL 邊緣定向。然後,使用 COLL,解決 LL 的角塊,同時保留邊緣方向。最後,排列邊緣。 [19]

塊狀方法

[edit | edit source]

佩特魯斯方法:拉爾斯·佩特魯斯 創造。作為最短的解法方法之一,佩特魯斯方法 通常用於最少步數比賽。佩特魯斯認為,當你構建層時,立方體的剩餘部分的組織方式會受到你已經完成的部分的限制。為了在構建第一層後繼續進行基於層的解法,立方體已解決的部分將不得不暫時拆卸,並在進行所需的移動後重新組裝。佩特魯斯試圖透過從一個角塊向外解決立方體來繞過這個 困境,這樣他在前進的過程中就可以在立方體的幾面自由移動。與其他 F2L 方法相比,需要學習的演算法較少,但需要大量的努力才能掌握。該方法的基礎是建立一個 2 × 2 × 3 的塊,然後繼續解決一個 3 × 3 × 2 的塊,同時翻轉最後一層的邊。然後將最後一層分成兩步解決,首先是角塊,然後是邊。 [20]

海斯方法:瑞安·海斯 創造。首先,直觀地構建一個內層正方形和三個外層正方形。然後,在定向剩餘邊時,將它們放置正確。之後,建立兩對角邊,並解決剩餘的邊。最後 3 個角塊使用 對易子 來解決。 [21]

吉爾斯·魯克斯方法: 另一種獨特的方法,但像佩特魯斯方法一樣,以塊為單位工作。你首先解決一個 1 × 2 × 3 的塊,然後在立方體的另一側解決另一個 1 × 2 × 3 的塊。接下來,解決最後 4 個角塊,最後解決邊和中心塊。只需要學習 24 個演算法。 [22]

先角塊方法

[edit | edit source]

沃特曼方法: 由馬克·沃特曼創造。高階先角塊方法,需要學習大約 90 個演算法。解決 L 面,然後解決 R 面上的角塊,最後解決邊。一種極快的解法方法。 [23]

傑利內克方法: 由約瑟夫·傑利內克創造。此方法與沃特曼的方法非常相似。 [24]

在一個角塊上建立一個已解決的 2 × 2 × 2 立方體,並旋轉剩餘的塊(這可能需要一些時間,但你最終會解決它)。

卡塔方法

[edit | edit source]

該方法由義大利人朱塞佩·卡塔創造,與其他方法完全不同,它基於結構性塊(對於 3x3x3 立方體,只有 2 種類型,即邊和中間塊),從邊向中心,以兩對面為樞軸。一個非常重要的注意事項是,這三個原則與卡塔方法一起,隨後指導了任何尺寸的 NxNxN 立方體的解法,除了對兩個額外的結構性塊實施額外的演算法,分別對應於 4x4x4(4 個“中心”而不是 1 個“內部對角冠”,而不是塊,對於 3x3x3;和 2 個側邊中間塊,而不是 3x3x3 的 1 個),以及 6x6x6 的一個額外的結構性塊(“對稱的內部中間冠”)。

這種方法——不是偶然地由一位建築師發現和編纂——極其具有教學意義,比其他方法更簡單、更有序、更易於理解和記憶,其方法是系統地處理事物整體和部分的範例,從一般到特殊。它教會我們同時看到整體的整體,作為一個系統的部分,而不是部分的總和或並列。

三種“難度級別”

[edit | edit source]

已經開發出了一種程式,透過該程式,初學者可以透過三個自成一體的“難度級別”來學習和掌握魔方。[3]

最低級別有意地保持所有面都具有水平和垂直對稱性的配置,因此它還使許多“漂亮圖案”能夠構建——例如棋盤格、十字形、條紋和中心“點”。第二級涉及解決只使用 180 度旋轉打亂的魔方。在這些早期階段獲得的技術在繼續提升到下一級時仍然有用。

如何解決 2x2x2 (迷你/口袋魔方)

[edit | edit source]

如果你知道如何解決 3x3x3 魔方和 4x4x4 魔方(見上文),那麼解決 2x2x2 魔方可以透過將魔方視為 3x3x3 魔方來實現,其中中心塊和邊塊始終處於已解決狀態,無論你進行哪些移動。換句話說,解法只包括 3x3x3 解法中的角塊解決步驟。重要的是要記住哪面是哪面(因為你無法看到中間層,因為它們實際上不存在),雖然這並不難。

其他解法頁面

[edit | edit source]

這裡列出了一些最受歡迎的解法頁面。它們都不同,儘管它們大多使用類似的逐層方法。通常你需要 Java 才能看到使用的動畫。

使用動畫

使用圖片

使用影片

純文字

替代方法

[edit | edit source]

解法程式

[edit | edit source]

數學背景

[edit | edit source]
[編輯 | 編輯原始碼]
  • 魔方 描述了由厄諾·魯比克設計的其他謎題

參考文獻

[編輯 | 編輯原始碼]
  1. Singmaster, David (1981). 關於魔方的筆記. Harmondsworth, Eng: 企鵝圖書. ISBN 0-907395-00-7.
  2. Nourse, James G. (1981). 魔方簡易解法. 紐約: 班坦. ISBN 0-553-14017-5.
  3. McNaughton, D. (1989 年 11 月 – 1990 年 2 月). "魔方:掌握它的三階段方法". 少年新聞. 阿勒尼斯,迪拜,阿聯酋.{{cite journal}}: CS1 maint: 日期格式 (連結)
華夏公益教科書