本文參加百家號 #科學了不起# 系列徵文
六個面的魔方玩具,從我們還是孩子時期就讓人著迷,然而除了少數人可以精通外,大部分人即便花很長時間也無法讓它完整復原成所有面單一顏色。
那麼您是否想一勞永逸地獲取其中的奧秘呢?明年魔方上市就滿50周年了,是時候用深奧的數學來解釋解釋其中的奧秘了。雖然立方體的內部是塑料製成的,但它真正的內部除了數字什麼都不是。就讓我們一探究竟吧。
首先的步驟是拆開魔方塊。讓我們從一些基礎知識開始,一個3x3x3的魔方有六個面,每個面都有不同的顏色。每個面的中心都與支撐立方體的核心支架相連,因此除了原地旋轉外它們不會移動。因此同樣的顏色總是以相反的方向結束; 在標準的立方體上,白色與黃色相對,紅色與橙色相對,藍色與綠色相對。
打開一個魔方,你會發現它是由三種魔方塊組成的。首先有一個中心支架,連接著每個面的中心。然後是小的魔方塊,每塊1x1x1。角立方塊有三個彩色的邊,邊立方塊有兩個。一個魔方有一個核心,八個角立方塊,十二個邊立方塊。
用這些數字完成最直接的數學運算就是你拼魔方所能發生變化的驚人總數:43,252,003,274,489,856,000。用更數學的方式寫,這個數字是(8!*3^8*12!*2^12)/(3*2*2),大約約等於4.3*10^19或者4325億億種變化。那麼這個具體的計算是怎麼來的呢?
第一項3^8,計算八個角塊旋轉的每一種方式。可以通過三種不同方式將角塊放入其插槽中。8個角塊的3倍,所以它們相乘得到3^8。
接下來是每個角塊放在哪裡。有八個角槽,所以第一個角塊有八個選項。第二個角塊有7個選項,第三個有6個選項,以此類推,一直到最後一個角塊,它必須放在最後一個角槽中。計算結果是8*7*6*5*4*3*2*1,即8!,也就是8個角塊全排列數量。
因此,第一個大塊(8!*3^8)可以計算所有角塊插入的可能方式。3^8是他們的方向,8!是他們的位置。下一個塊(12!*2^12)是相同的思路,只是現在是邊。邊只有兩個方向,所以12個邊總共有2^12個方向。然後有12個位置,所以是12!,這是它們到達這些點的路徑數或者說12個稜塊全排列的數量。
現在我們進行的運算(8!*3^8*12!*2^12)/(3*2*2),它與魔方的一個事實有關,這個事實經常被感覺到,但並不總是被理解。天文數字(8!*3^8*12!*2^12)所解釋的是魔方拆了隨機組裝後一共可以得到的總的組合數,但卻並非正確的可還原的魔方的總組合數。而正確的總組合數只有12分之一。
這裡是一個思維實驗來說明計算過程。
假設你打開一個魔方,取出每一個魔方塊,然後把所有的魔方塊放回隨機的槽中,當然角塊只適合角槽,邊塊只適合於邊槽。你會得到一個看起來打亂的普通的魔方,到目前為止,我們已經計算出了一共可以有多少種變化:(8!*3^8*12!*2^12)。現在有沒有可能在不把它拆開的情況下解出這個雜亂的立方體?
答案是否定的。這是一個困住了許多新手的陷阱。如果你正在練習,你想打亂一個已經解決的魔方,你必須保持魔方完整並手動打亂它。如果你把它拆開然後隨機重組,實際上只有1 / 12的概率可以解出。
答案就在算法裡!想知道為什麼是1 / 12嗎? 有一種很好的視覺方式來理解它。一個被拆解並用魔方塊隨機重新組裝的魔方,採用以下方式之一將有平等的機率的被復原。
我們考慮了展開後的12種不同情況。第一行有正常的角。第2行和第3行有一個角旋轉到位。列1有正常的邊,列2的一條邊翻轉到位,第3列交換了兩條邊,最後第4列有一條翻轉的邊加上兩條交換的邊。所以上面圖片中的12個魔方塊不能互相轉換。然而卻有第13種布局,可以變成這12個中的一個。你一定要問我們怎麼知道的?
這裡有一個聯繫,魔方的九個面上哪些魔方塊可以移動,哪些不可以移動。一系列的動作通常被魔方愛好者稱為「算法」。最受歡迎的算法是那些只移動了幾個立方體而不動其他立方體的算法。算法的局限性是解決這個問題的關鍵。
12是由3個因子相乘得到的:12 = 3*2*2。我們需要解決一個因數是3,兩個因數是2的問題。
3的因數可以歸結為:有一種算法會扭曲兩個不同的角,但是沒有一種算法會扭曲單個角而其他的都保持不變。因此如果你拿起一個普通的魔方,撬出一個角並替換成扭曲的角,就不可能解開,你會把它從圖表的左上角移到其下方的一個點。
但是如果你重複該過程並再多扭一個角,則不會增加第二個因子3。既然已經扭曲了兩個角,我們就可以應用扭曲兩個角的算法,直到至少固定一個。如果另一個碰巧在此過程中得到解決,那麼我們很幸運,現在回到了可解的魔方。總體而言,拐角的方向可以採用以下三種方式之一。
第一個因子2是相似的。有一種算法可以翻轉兩條不同的邊,但是沒有一種算法可以翻轉一條邊。所以任意數量的翻轉邊都可以被擺成一條邊,這條邊可以翻轉也可以不翻轉,有兩種可能。
最後一個因子2實際上涉及邊和角,儘管我們在圖表上用邊顯示了它。有一種算法在交換兩個角的同時也可以交換兩個邊。沒有任何算法只能交換一對角,也沒有任何算法只能交換一對邊。
如果有一個立方體,撬出兩個邊然後交換它們,則從圖表上跳過兩列,在第1列和第3列之間,或在第2列和第4列之間。如果交換一對角,則同樣如此。但是交換一對邊和一對角會互相抵消,因為有一種算法可以消除這種情況。
現在被12除的每個因子現在都做了解釋,您就可以了解(8!*3^8)*(12!*2^12)/ 12的完整意義。我們有(8!*3^8)(12!*2^12)種方法可以將魔方塊放置在魔方上,但是其中只有十二分之一可以用於可解的魔方上。因此(8!*3^8)*(12!*2^12)/ 12是您可以在不破壞魔方的情況下打亂魔方後可正確復原的魔方塊的總組合數量,也就說會有4325億億種變化!