跳轉到內容

如何解魔方

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

有很多符號,請參考這個 符號指南

簡要說明

  • 魔方有六個面,分別表示為正面、背面、左側、右側、上面和下面。它們通常用其單字母縮寫表示。
  • 在下方的等軸測圖中,當一個角點指向你時,你看到的是 F、R 和 U 面。F 面朝左。
  • 動作表示為每次動作旋轉一個外部面的四分之一圈(90 度)。這意味著中心方塊的顏色不會改變。在我們的圖表中,F 為藍色,R 為紅色,U 為黃色。其他三種顏色通常是橙色與紅色相對,綠色與藍色相對,白色與黃色相對。
  • 該面的層旋轉四分之一圈預設為順時針方向。逆時針旋轉通常被稱為“反向”,用 ′ 表示,例如,R′。(′ 通常讀作“素數”、“撇號”、“勾號”、“逆時針”、“反向”或“i”表示反向)。半旋轉(180 度)用數字“2”表示,例如,R2(表示在單字母縮寫之後進行 2 次四分之一圈旋轉)。
  • 要檢視其他三種顏色的側面發生了什麼,請將整個魔方旋轉,這被描述為沿著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 年代初期,當時許多解法發表在書籍和文章中。例如,參見 Philip Marshall 對各種經典方法的比較。這裡我們提到了 1981 年左右由 David Singmaster[1] 和 James Nourse[2]提出的兩種解法。

一個關鍵的觀察結果是,解題過程可以分解成幾個步驟。大多數“標準”經典方法都是層層解題。例如,先解 1. 上層的所有邊塊,2. 上層的角塊,3. 中層或水平層的所有邊塊,4. 下層的所有邊塊,以及 5. 下層的角塊,這樣就完成了解題。有一些相關的變體,例如步驟 2 和 3 可以合併(參見下面的 Fridrich 方法),或者步驟 5 通常被分成先將塊放到正確的位置,然後修復它們的方向。關鍵是,這些步驟簡化了解題過程,因為存在可以有效處理各個步驟的演算法(一系列的面旋轉)。解題方法不僅在步驟上有所不同,還在為各個步驟建議的演算法集上有所不同。

正如 Marshall 所討論的,許多更新的方法都源於這些早期解法。這在下面列出的幾種方法中也很明顯,但這些方法包括了一些改進。解題步驟已經修改,演算法集已經改進和最佳化,以適應不同的解題步驟。此外,一些早期的解法方法沒有完全解釋(或存在缺陷),並且在演示方面也做了很多改進。

在以下內容中,我們評論了初學者方法,其目標是簡單(通常以效率為代價),以及高階方法,其提供了更快的和/或更短的解法(通常以複雜度增加為代價)。

初學者方法

[編輯 | 編輯原始碼]

術語“初學者方法”被不同的作者使用得不同。初學者方法應該簡單,但什麼是簡單的取決於人,並且隨著經驗的增長而迅速改變。正如 Marshall 所討論的,一些早期的簡單方法需要 10 到 20 個演算法,需要 100 到 150 步才能解開魔方。例如,他報告了 Nourse 方法的平均步數為 110 步,總共使用了 12 個演算法,如果加上使用 20 個演算法的快捷方式,則平均步數降至 100 步。

如果一種現代方法只需要 5 個或更少的演算法,那麼它就可以被稱為簡單方法。如果你習慣了使用 50 多個演算法的高階方法,那麼 10 個或更少的演算法也很簡單。此外,演算法本身也不應該過於冗長和複雜。最近的一些只需要 5 個或更少演算法的初學者方法非常有效,需要不到 100 步,在某些情況下只需要大約 70 步。與一些需要 40 到 60 步的高階魔方速度解法相比,這非常好,但這些方法平均使用了 50 多個演算法。

最近的初學者方法

[編輯 | 編輯原始碼]

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

海斯新手方法:這是一個最佳化後的經典層層解法的代表性例子。最初的策略歸功於大衛·辛格馬斯特。它需要四個演算法。(一些簡單的步驟被標記為直觀,不計入演算法,但這是常見的做法。)解法藉助動畫呈現。 [2]

維基百科新手方法:在 維基百科頁面 上展示,這種層層解法使用 5 到 8 個演算法,具體取決於你的計算方式。雖然在演算法數量上可能不是最優的,但它展示了一個相當成功的想法。前兩層只解決了 3 個角塊和 3 個邊塊。將這些塊作為自由空間可以簡化一些後面的步驟。請檢視下面的彼得斯方法,瞭解經典的塊構建方法,該方法避免過早地解決某些塊。

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

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

單演算法方法:8355 方法和馬歇爾方法可以簡化為單演算法方法,請參閱 單演算法魔方解法Y 形移動方法。基本上,有兩個基本的 4 步交換子,即 "S 形移動""Y 形移動",它們在這些方法和其他方法中被用來解決邊塊。事實證明,這些交換子也可以反覆應用來替換 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)

更快的解法

[edit | edit source]

雖然以上方法可能適合新手,但它們太慢了,無法用於 速擰。速擰玩家最常用的方法與上面的維基百科新手方法非常相似,只是將步驟 2 和 3 合併,最後層用兩步而不是三步來解決。這種常見方法的發明人是 傑西卡·弗里德里希。使用這種方法,熟練的速擰玩家經過幾個月的刻苦練習,平均可以在 20 秒內完成。但是,要學習這種方法,你必須學習 78 個演算法。有些方法速度一樣快,但需要記憶的演算法要少得多。以下是幾種流行的 速擰 方法的簡要概述。

層層解法

[edit | edit source]

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

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

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

ZB 方法: 這種方法 是由 羅恩·範·布魯切姆茲比格涅夫·茲博羅夫斯基 在 2003 年獨立開發的。在解決十字形和三個 c/e 對後,在定位最後層邊塊的同時解決最後的 F2L 對。這被稱為 ZBF2L 或 ZBLS。最後層可以在一個演算法中解決,被稱為 ZBLL。終極方法需要幾百個演算法。 拉爾斯·範登伯格 的網站有 ZBF2L 演算法,在 VH 系統中使用。 [10] 還有一個最近的 Google 電子表格在 [11]。ZBLL 演算法可以在 Doug Li 的網頁上找到。 [12]

ZZ 方法: 這種方法 是由 ZB 方法的共同創造者茲比格涅夫·茲博羅夫斯基在 2006 年建立的。它有三個基本步驟: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],最後層的定位和排列,以及 COLL [17] 和 EPLL [18],角塊定位和邊塊排列。第一種方法是使用 7 個演算法中的一個來解決頂層 (OLL),然後將邊塊和角塊排列到正確的位置 (PLL),這需要 21 個演算法。解決 LL 的第一種方法所需的總演算法數為 28 個。解決 LL 的第二種方法是使用一個演算法來解決頂層和角塊 (COLL),然後解決邊塊 (EPLL)。COLL 需要 40 個演算法,EPLL 需要 4 個演算法,總共 44 個演算法。第二種方法更快,因為 EPLL 的識別和執行都更容易。

VH 方法:拉爾斯·範登伯格丹·哈里斯 建立,作為從弗里德里希到 ZB 的過渡方法。首先,使用弗里德里希或其他方法,不解決一個 c/e 對的情況下解決 F2L。然後將最後一對組合在一起,但不要插入。然後將其插入 F2L,並一次性定位最後層邊塊。然後,使用 COLL,在保持邊塊定位的情況下解決最後層的角塊。然後排列邊塊。 [19]

塊構建方法

[edit | edit source]

彼得斯系統:拉爾斯·彼得斯 建立。 彼得斯方法 作為最少步數競賽中使用最短的方法之一,在每次解法中的面旋轉次數最少。彼得斯認為,當構建層時,魔方剩餘塊的進一步組織會被你已經完成的步驟限制。對於在構建第一層後繼續進行的基於層的解法,魔方已解決的部分將不得不暫時拆卸,以便進行所需的移動,然後在之後重新組裝。彼得斯試圖透過從一個角塊向外解決魔方來避免這種 困境,使他能夠在構建過程中不受限制地移動魔方的多個側面。與其他 F2L 方法相比,需要學習的演算法更少,但需要大量的投入才能掌握。這種方法的基本原理是在魔方上建立一個 2 × 2 × 3 塊,然後繼續解決一個 3 × 3 × 2 塊,但也翻轉最後層的邊塊。然後用兩步解決最後層,先解決角塊,然後解決邊塊。 [20]

Heise 方法:Ryan Heise 建立。首先,直觀地構建一個內方塊和三個外方塊。然後,在調整剩餘邊時將它們放置正確。之後,您建立兩個 c/e 對,並解決剩餘的邊。最後 3 個角使用 交換子 解決。 [21]

Gilles Roux 方法: 另一種獨特的方法,但像 Petrus 方法一樣以塊為單位工作。您從解決一個 1 × 2 × 3 塊開始,然後在魔方另一側解決另一個 1 × 2 × 3 塊。接下來,您解決最後 4 個角,最後是邊和中心。只有 24 個演算法需要學習。 [22]

角優先方法

[edit | edit source]

Waterman 方法: 由 Mark Waterman 建立。高階角優先方法,大約有 90 個演算法需要學習。在 L 上解決一個面,在 R 上做角,然後解決邊。一種極快的辦法。 [23]

Jelinek 方法: 由 Josef Jelinek 建立。這種方法與 Waterman 的方法非常相似。 [24]

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

Catta 方法

[edit | edit source]

由其創造者義大利人 Giuseppe Catta 提出,獨一無二,與其他所有方法不同,它基於結構塊(在 3x3x3 魔方的案例中,只有 2 種類型,邊和中塊),從邊到中心,並以兩個相對面為樞紐。非常重要的說明,因為這 3 個原則與 Catta 方法一起,隨後引導了任何尺寸 NxNxN 的魔方(除了實現分別與兩個附加結構塊一致的附加演算法,以及 4x4x4(4 個“中心”而不是 3x3x3 的 1 個“對角內冠”,不是塊;以及 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]
[edit | edit source]

參考文獻

[edit | edit source]
  1. Singmaster, David (1981). 魔方筆記 (Notes on Rubik's Magic Cube). Harmondsworth, Eng: 企鵝圖書 (Penguin Books). ISBN 0-907395-00-7.
  2. Nourse, James G. (1981). 魔方簡易解法 (The Simple Solution to Rubik's Cube). 紐約 (New York): 班塔姆 (Bantam). ISBN 0-553-14017-5.
  3. McNaughton, D. (1989年11月 – 1990年2月). "魔方:掌握它的三步法 (The Rubik Cube: A three-stage approach to mastering it)". 少年新聞 (Junior News). 阿聯酋迪拜 (Al-Nisr, Dubai, UAE).{{cite journal}}: CS1 maint: date format (link)
華夏公益教科書