魔方公式怎麼來的?
各種解法 層先法 角先法 棱先法 橋式解法 CFOP的公式怎麼來的?
謝邀。我不會玩魔方。
所以我只能介紹一下魔方里的數學,以及數學家們是怎麼研究魔方的。
因此這個答案里的演算法不是適合人類的演算法,而是所謂「上帝演算法」。http://en.wikipedia.org/wiki/God%27s_algorithm
魔方背後的數學是群論。http://en.wikipedia.org/wiki/Rubik%27s_Cube_group
對魔方六個面的旋轉生成一個群,叫魔方群,其中有 43 252 003 274 489 856 000 個元素。
魔方群的子群結構使得解魔方的任務可以被拆解成小任務,並使狀態識別與分類成為可能。
群中每個元素都可以用不超過 20 個生成元表示,即理論上可以在 20 步以內解出任何魔方。
這個結果是 2010 年由計算機輔助證明的 http://www.cube20.org/
而最早使用群論解魔方的應該是 Thistlethwaite,他把最壞情況所需步數從超過 100 降到 52。
他的 1981 年左右設計的演算法現在已經被消化為人類可用的演算法 http://www.ryanheise.com/cube/human_thistlethwaite_algorithm.html
註:魔方最早是 1977 年出現的。
更多人類演算法的發現和歷史,見 http://en.wikipedia.org/wiki/Optimal_solutions_for_Rubik%27s_Cube http://en.wikipedia.org/wiki/Rubik%27s_Cube#Optimal_solutions
魔方吧論壇『 理論篇 』
大煙頭的:基本公式產生的原理(空穴法)
魔友schuma在伯克利大學的講座:怎樣用交換子解任意魔方
魔方課講座: 如何用交換子解魔方(中文字幕)視頻
1. 魔方公式的卻有很多是計算機編程計算出來的,從數學和演算法上的確用了群論的知識。
2. 不過裡面的數學太過深奧,一般高手發明自己的公式都不是這樣的。一般而言,玩的魔方種類多了,大部分是異形魔方吧,就會領悟一些自己推導公式的經驗。一般我自己推導公式常用的思路是「ABA"」,還有所謂的「空穴法」,最出名的還是「三輪換」的思想。ABA"法是指準備一個公式A,和其完全相反的互逆公式A",然後中間夾上個公式B,有時候這個B可能只有一步都是可以的,這樣連起來ABA』就能成為一個新的公式。關鍵在於B不能破壞到前面的狀態。空穴法跟ABA』差不多吧。講起來比較複雜。
3. 創造魔方公式關鍵在於魔方的軸數,一般而言12軸的魔方可能會和6軸的有些類似,但是4軸的魔方就差別很大了,比如五魔方的公式和三階魔方類似,但是和skewb,helicopter就差很遠。。階數和軸數都對公式研究有很大的影響。特殊魔方比如三階魔中魔,捆綁類的,那都是基於原有三階公式不斷疊加產生的。還有很多創造公式的方法,一時間很難講清楚,得自己慢慢研究才行。。
4.目前有研究的人可以到魔方吧mf8-china論壇裡面,比如烏木老師和大煙頭大大就有介紹如何自己研究魔方公式的思路。===== 我只是搬運工 =====
原文地址:數學專題
群論與魔方
「魔方」(Rubik"s
Cube,有些人直譯作「魯比克立方體」,在香港又稱「扭計骰」)是筆者中學時代風靡一時的智力玩具,至今仍是十分暢銷的玩具。筆者當年沒有學懂如何破解
(又稱還原)魔方,直至2009年在外遊時買了一個2 × 2 ×
2魔方作為手信送給我當時未滿四歲的兒子,為了教他玩,才開始認真學習破解魔方的攻略。學懂破解之道後,便開始探尋這些攻略背後的原理,獲得了一些心得,
這些心得(包括2 × 2 × 2魔方的攻略以及對其背後原理的解釋)現載於本人的網誌中(見《三步破解2×2×2扭計骰(魔方)》和《2×2×2扭計骰(魔方)攻略揭秘(上)、(中)、(下))。
魔方與抽象代數學中的「群論」(Group Theory)存在密切關係。不過由於2 × 2 ×
2魔方較為簡單,無需使用很多群論的知識,所以上述網誌中的文章沒有闡述這種關係。完成上述網誌後,我便開始嘗試把以往學得的群論知識應用於3 × 3 ×
3魔方,終於弄明白了3 × 3 ×
3魔方攻略中每一步背後的數學原理,並發覺可以把原理推廣至其他魔方,魔方遂成為繼Mastermind之後我最感興趣的智力遊戲。本專題旨在介紹群論與
魔方的密切關係,特別著重介紹如何用群論的知識解釋破解魔方的攻略和各種魔方花式,以下是本專題的目錄。
- 魔方的基本概念
- 群論基礎知識
- 排列的表示法與運算
- 魔方操作的表示與運算
- Dan Knights攻略解析(上)
- Dan Knights攻略解析(下)
- 魔方花式(上)
- 魔方花式(下)
- 二階魔方及其還原攻略
- 高階魔方的結構與操作
- 高階魔方的性質與公式
- 五階魔方及其還原攻略
- 四階魔方及其還原攻略
- 更高階魔方的還原攻略
參考資料及網頁
- The best links about the Rubik"s cube
- Rubik"s Official Online Site
- 吳鶴齡,《魅力魔方》,北京:科學出版社,2009年9月
- Fun with Rubik"s Cube
您是指的URLBFD這種字母還是指的魔方的解法思路呢?
首先說字母,你在記憶公式時,一是肌肉記憶(即我們記住手機擰的每一個步驟),二是字母公式。字母公式更易於我們的記憶,而且每個字母代表一個步驟比較簡單,容易記憶。
二回答「公式」是怎麼來的。魔方的解法有很多中思路,但終究都是把魔方分成幾個步驟來解決問題的。從圖案一怎麼變成圖案二,這需要一個複雜的過程,而有人把最簡單的方法研究了出來分享給大家的那種解法,變成了我們所用的公式。每個情況解決它的擰法有很多很多。這就是每個人的「公式」。它的來源在於大家的思考。
有人認為魔方公式有不少的是電腦推出的,其實電腦的解法有很多步驟雖然少但是無法擰的順手,所以我們要加以改造。公式總是比較好的,比自己研究好,除非你的能力很高。
希望答案能幫助到您:)
群論,不過這不意味著你學了群論就能立即擰轉魔方。
具體的魔方的操作與其說是群論不如說是實踐。
假如你沒玩過魔方,即使群論學得很好也很難快速擰好。但是可能可以慢慢推出部分公式。
雖然已經幾年不玩魔方,但中學時期,那兩年多的魔方經歷,我曾經可以用自己和同學發明的魔方復原體系及公式在平均30秒以內復原魔方(後來學習了專業玩法可以16秒左右)。所以我對這個問題還是很有體會的。
首先魔方公式不是憑空產生的,而是客觀存在的,這是由魔方的物理結構決定的。一種狀態到另一種狀態的變換往往是存在多種方法的,所以問題應該是怎樣找到合適的公式(這由我們的復原需求決定的,例如,對於速擰,我們要選擇在達到相同目的的條件下,速度最快,所用時間最少的方法,對於最少步數玩法,我們要找到最少步數的公式,對於盲擰,腳擰……各種玩法都應該挑選符合各自目的的公式)要想找到它們總得來說有三種方法:
1,從功能理解出發進行設計。對需要實現的變換進行分析來找到公式,但如此只能實現一些簡單的公式。當實現變換較為複雜時,憑人的邏輯分析能力是很難實現的,現在藉助計算機已經取得了很好的效果。
2,進行簡單公式的組合。簡單公式進行組合時往往可以實現複雜狀態變換,而且進行組合時經常可以消去連接處的互為可逆部分,從但而減少步數,這是一個很大的優點。但想做到這樣要對簡單公式有深刻的理解才行。這種方法可行性較大,較多採用。但也有缺點,採用組合的方法往往很難找出步數最少的公式,這也是由此方法本身特點決定的。
3,從實驗中選取。進行各種不同的變換,然後從其實現的功能上選取有價值的。也就是瞎蒙,雖然成功率低,但門檻也低,說不定就會有驚喜。
就說這麼多了,都為自己總結和理解,有不足的,歡迎交流。
現在大多數玩魔方的人基本上都是使用CFOP法,CFOP法注重的不是記憶,而是對稱,多用順手的公式,多用鏡像,倒做的方法。
總共大概分4步:
①CROSS。做好底面十字;
②F2L。通俗講就是一次性做好兩層;
③OLL。完成頂面顏色的統一;
④PLL。完成頂層。
我認為①②步不需要用到公式,因為做十字很簡單。而第②步,更多的靠的是理解和觀察。最依賴公式的是③④步。這兩步也是最困難的兩步,公式也最多最複雜。公式是經過前人們大量的總結和歸納。還有一些公式是經過演算和變式得來的,例如:風箏公式和T字型公式,都是由兩個OLL組成的,並且,風箏公式和T字型公式中的OLL是完全相同的,只不過是順序不同。再如換棱公式,逆時針和順時針其實只是同一個公式正做和反做而已。
我的雙手速擰大概是22S,單擰大概是55S,如果有新手想要入門的可以找我交流,如果有高手就來點撥點撥我吧…^_^
=====================================================
底面十字圖:
我自己的記法就是橙色右邊是綠色,綠色對面是藍色,橙色對面是紅色。
其實@陳浩的數學解法只能被計算機用來最小步數解魔方,或者用在一種比賽模式中(即給出一個形態,然後判斷最小步數解法再用最快的速度復原,拍成視頻參加線上比賽)然而我們現在使用的公式大部分都不是最少步數而是最順手的,因為在速擰比賽中,選手們要條件反射般的判斷形態並使用對應公式。
所以魔方公式其實是在能作出想要狀態的基礎上最順手化的結果。
我是自己業餘時間研究了一個月,找出了魔方的解法。我沒有用高深的數學,我用的是基礎的邏輯:先理解魔方是按塊來歸位的,而不是按面,這是第一步。然後就是找出一個順序,和一組操作,能夠使得任意魔方,按照這個順序,應用這些操作,將各個塊歸位。
順序我用的是最直觀的按層順序,先排好第一層,再排好第二層,最後第三層。在弄第二層的時候,保持第一層完整,在弄第三層的時候,保持前兩層完整(指總體完整,在一組操作的中間,會暫時破壞,但是一組操作完成之後,前面弄好的層應該回復完整)。有了這個順序,下一步就是找出各種操作幫你按照這個順序將塊歸位。對於第一層,非常簡單,因為不需要考慮保留別的層,我是直接按照123,456,789的順序來弄第一層上的九個塊。操作是直接湊,有一點空間想像能力就很容易做到。第二層其實只有四個塊要弄(四個棱塊),我用一種操作,可以將棱塊歸位,而不破壞其他已經弄好的棱塊,操作大概五步(具體難以文字描述,大致是小幅打散,對齊,再湊攏)。最後一層是最難的。但是原理其實很簡單:找到一組操作,應用它之後,下面兩層不變,而最上面一層有變化。這樣你就知道你可以動最上面一層了。多找出幾組這樣的操作,按照不同的順序應用它們,看看最上面一層怎麼變化,總結一下規律,摸索出一個應用這些操作的鏈條,最終把最上面一層拼好。(這個需要不斷摸索,我一個月里大概有2/3的時間是用在找第三層的方法)。
我的方法不是最快的,實際上,比較慢,平均2到3分鐘,但是我覺得自己摸索出魔方的解法,勝過去網上直接找個攻略,然後照著玩。通過自己找方法的過程,我能理解順序和操作(用數學的語言叫變換),是魔方解法的基本構成。找出一個玩法之後,就可以再想想看有沒有別的順序,別的更簡潔的操作,能夠更快的把魔方玩出來。比如前面的按層法順序可以換成先角塊,再其他。順序定了之後,同樣是要找到一組操作來達成每一步。網上現成的快速玩法很多,我就沒有再去研究了。現在的國內流行的魔方公式有幾種
都是以cfop為構架,國內魔友自主填充公式進去的
現在主流的魔方公式有gan的公式,庄海燕的公式,還有就是掃地僧的公式。
其他的很多公式都是只有一部分是自己寫的,大部分跟以上幾個重複,就不細說。
我之前經常跟他聊起這個問題。他的回答很簡單。
就是用電腦算好公式,然後一條一條試。用手感受那條最好用。
稍微學過cfop解法的都知道,52條f,一條就有2k以上的公式。這是多大的工作量。
而且魔方的最前沿的公式不是一成不變的,新公式的誕生雖然不是很頻繁,但是還是在改變。
去年夏天,我的老師掃地僧就更新了他在mf8的置頂帖,飛旋馬賽克,更新了一部分的魔方公式。
公式這樣來的:
首先,要先有一個目的,我要一個公式,這個公式可以實現什麼什麼的交換,不影響那些那些塊。
然後拿電腦或者用手窮舉一下。
算出很多結果。拿幾個順手的來,就叫公式了
/___/___/___/
/___ /___/___/ /
|___|___|___|/
|___|___|_x_|/
|___|___|_y_|/
簡圖。。x是棱塊 y是角塊 x+y叫做一個棱(這個棱的定義僅在以下文字適用)
公式:LRFBUD分別是Left, Right, Face, Back, Up, Down面的順時針旋轉
我只會CFOP,就說下CFOP的思路吧。
CFOP分為四步
1.Cross:底面十字
太簡單了不需要公式(簡單是指初學 像菲神那樣15s內觀察出六種顏色里最好的cross和第一組F2L幾乎是不可能的。。)
2.F2L 對好底面的同時做好第二層
思路就是如何只用F和R和U組合角塊和對應棱塊 因為FRU不影響剩下三個角
網上搜到的公式就是通過嘗試後達到的既順手,步數又少的方案
(當然 在很熟練之後 可以忽視FRU的限制 例如四向F2L 甚至通過轉底面加速兩個棱的拼合
參見菲神的example solve:http://youtu.be/5b_OnvzkHdM?list=PLtgteyUhYjTxfuwPU3cHLDSG8gyWJ6OzR)
3.OLL 頂面顏色
將一條側面的棱換至頂面,這時候就可以利用這條棱原來的位置把原本朝向側邊的頂面顏色翻到頂面。大部分應該是計算機搜索出可行解+人為優化手法。
4.PLL 完成頂面的側邊
思路完全不知道。。應該是計算機搜索可行解+人為優化手法。
以前都是推理出來的,後來有了計算機以後,你想要什麼狀態都可以算出來,然後再根據實際的經驗把公式轉換為速度比較快的,比較符合手法的公式。
層先法、角先法、棱先法是其他解法的基礎。
應該是魔方發明不久之後被人們漸漸總結出來的。
現在的各種公式都是以此為基礎慢慢被發現和總結歸納得出的,經過大家的檢驗和篩選找到最好用的而不一定是步數較少的解法。
高階帶方向的魔方,我自己研究出了一些公式,可以調整中心塊方向,兩個面的中心塊互換,以及換棱的(不完全)簡單公式:只能部分解決棱塊互換.當然再配合4階魔方的換棱公式,就OK了,但是那兩個公式超長,我自己的方法只用5步,還可以進一步的一次調整2個棱塊.
數學方法就是群論,我不會,反正這個也是熟能生巧的,新手恐怕也不可能憑空發明出一個魔方公式.
重點來了:如何僅憑經驗發明一個魔方公式?
1.把你要復原的塊塊直接復原.
2.把1被複原的部分找個地方藏起來(比如旋轉180度)
3.從後面把打亂的步驟反過來走一遍,憑直覺就夠.
4.然後魔方再翻過來,把塊塊復原...
魔方公式是用電腦程序算出來的,然後自己挑出幾個順手的
電腦計算和人工經驗(我找不出更好的說法了)兩種
電腦對魔方的一種狀態可以輸出許多種達到那種狀態的方法,其中最順手的就被人們選為公式。
部分公式(F2L與部分PLL)也有人工推導的(F2L的基本就是理解所得的最優化版本)(PLL的有幾條是由多個O組成的)一部分是經過嘗試吧 而CFOP應該大部分來自於計算機計算和人為的優化 步數不一定最小步 但都比較順手
而橋式這種公式不是最重要的 橋式的靈魂是那種思想
通過嘗試後,逐步總結出來的