2011年2月8日星期二

矩陣vs魔方

  這東西以前在另一個blog寫過了,那時是略略的寫,前陣子又和學生談起了這東西,他很感興趣,所以就再來寫一次吧。魔方這玩意其實蠻有意思的,如果要追溯它的歷史發展會發現到其實它並不是像現在的人這樣拿來比速度的,它的發明是為了讓學生增強三維的空間思維能力,它是於1974年由函牙利建築學教授和雕塑家厄爾諾.魯比克發明的。當時他做好了第一個作品時,拿來轉動了一下,卻發現要恢復原狀並不是那麼容易的,應該說很困難,當時他完全沒想過魔方會風靡全球。如果學了排列組合,你可以自行去算一算3x3的魔方,八個角,12個棱及6個中心,可以有多少種的變化,粗略計算大約有4.3x1019種變化。可見要把一個魔方還原並不是那麼容易的。那麼,魔方和矩陣到底有何關係呢?
  在開始之前我們先來建立一個共識,魔方轉法的術語(網路上常用的術語)
  R=右手邊(即籃色面)
  L=左手邊(即籃色的背面"青色")
  U=頂部(既白色面)
  D=底部(即黃色面,雖然看不到,哈哈哈)
  M=中間層
  F=前面(即紅色面)
B=背面(即紅色的背面"橙色")
沒有任何說明時是順時針轉90°或向前轉90°,當加上" ' "時像U'就是頂部逆時針轉90°
  (突然發現其實不用講這樣多嘛,我又不是要教玩魔方)
  
  廢話講完了,要開始進入正題了。先從矩陣說起吧。我們以比較簡單的三階逆矩陣為例來說明。(雖然二階更簡單,但會看不到東西)。如果一個單位矩陣I,我們乘上一些矩陣E1,E2,E3,E4使它變成矩陣A。如下:

那如果要求得單位矩陣I的話,就要找出A的逆矩陣A-1。那A-1要怎樣求呢?
A-1=(E4E3E2E1)-1=E1-1E2-1E3-1E4-1
A-1A=I=(E1-1E2-1E3-1E4-1)E4E3E2E1
同理若A=Ek...E3E2E1,A-1=(Ek...E3E2E1)-1=E1-1E2-1E3-1...Ek-1

再來我們來看魔方的轉法。假設一個六面已轉好的魔方,我們進行了如此的變化RULF,那如果我們要還原的話,我們旋轉的方式將會是F'L'U'R'。比照上面的矩陣有沒有發現什麼相似的東西呢?
說得明確一點的話,我們把一個已轉好的魔方當作是單位矩陣I,而我們每轉一步就當作是一個E來看代,像RULF中,R是E1,U是E2,L是E3,F是E4,而經過RULF變化後的魔方就是我們的矩陣A,那要還原成I的話,我們就要乘上A-1,所以我們做了F'L'U'R'的動作,其中F'是E4-1,L'是E3-1,U'是E2-1,R'是E1-1
  當然如果我們把它弄得複雜一點的話RULF當作是A,LMDR當作是B,RRUMR當作是C,你依順轉了上面三個變化,那如果你要還原的話,是否可以先還原A再還原B最後還原C,或是先還原C然後還原A再去還原B?拿著魔方自己轉一轉你會發現到,其實都不行。這說明了CBA的逆矩陣不會等於C-1B-1A-1或是C-1A-1B-1等的,只有當你轉的是A-1B-1C-1時才會正確的還原。這與矩陣的不可交換律相附合。即
然而有轉過魔方的人都知道,我們只要遵照一定的公式轉法去轉,那最終我們還是可以還原成六面顏色相同的情況啊,並不需要像我上述所描述的一樣,需要知道別人怎樣後轉再按照他的轉法逆轉回去還原。這和矩陣又有相似之處嗎?其實是有的,在求逆矩陣時,我們學過了代數餘式子法及高斯消元法。而高斯消元法是不管你是幾階的矩陣,只要逆矩陣存在的話,那它就一定可以求得到,這又和魔方所謂的公式又不謀而同了。

其實矩陣的不存在就相當於無法還原的魔方。當一個魔方一開始就已裝錯了,那不管你怎樣去轉,最後還是無法還原成六面都一樣顏色的樣子。同理如果一個矩陣的逆矩陣是不存在的,那你不管去乘上任何矩陣,乘多少次,最終還是無法得到單位矩陣。如出一策的道理。

  既然已知道魔方的轉法和矩陣有關,那我們是否可以自創公式呢?去搜索一下網上的公式拿來看,像OLL中魚頭的轉法L'URU'LUR',或是PLL中的其中一個轉法R2URUR'U'R'U'R'UR'又或F2L裡的F'UF等的,如果仔細的去觀察不難發現,其實只要有一個L出現,那就一定會出現另一個L',有R出現就一定有R'跟它相對應,當你把這些可以相互"抵消"的都畫掉後,最終會留下一個是沒辦法抵消的,而這東西就是促使它"變化"的主要"元素"。在創新公式時,你要知道自己轉過了哪些步驟,最後記得要去原回它。
  像在轉第二層時,相信很多新手都是用LBL的轉法。其實我在獲知有LBL這公式前一直用著自己的方法來轉,那方法多了很多步驟,而已蠻亂的。假設我要求我右手邊底部中間那顆轉去左手邊中間層那裡的話,轉法是R'F2MF2M'R'(前後的中間層往左邊轉90°)R2(前後的中間層往右邊轉90°)。同相可以轉到,只是過程多了點。

  要求逆矩陣你可以乘上很多的矩陣可它,使它變成了不懂什麼矩陣去,但最後只要你是想要得到逆矩陣,而你朝的又是對的方向,那最後還是可以求到的。過程是看個人,但最終結果會是相同的。同相是用高斯消元法,十個人去做同一道題,就可能出現好幾種不同的運算過程了,但最終得到的答案還是一樣的。

要如何去應用你所學到的數學,那就要看你的個人造化了。常常有人問數學學來做什麼?反正出了學校就不用再面對了,平常生活只要會加減乘除就好了。看起來似乎是如此沒錯,但有時候如果你會應用你學過的數學知道時,很多事情都可以變得比較簡單易懂了。知識的串聯很重要!