在90年代網絡沒有如今這般普及,電視劇播放的也少,全國各地往往看的電視相同,83版《射雕英雄傳》風靡全國。其中黃蓉替瑛姑解算九宮格難題,也使九宮格數字謎題得到了更為廣泛的傳播,而其中瑛姑的話:“想不到我苦思十幾年的難題,被你三言兩語就解決了”,卻當時的我很是不解,難道九宮格題目這麼難?現在看當然不是!如今許多小學生在剛上學時便開始接觸九宮格了。
倒不是說瑛姑真的花了十多年未解開九宮謎題,而且小說也并非這般寫的。隻是提到瑛姑自以為解題方法是她發明的而已。小說中黃蓉還提到了四宮格、五宮格以至百子圖等。讓83版編劇這樣一改,大概很多人都隻有兩種想法。
第一,九宮格非常的難,常人難以解開,而且變化非常多。
第二、瑛姑不會基本算法,用現在思維來說就是沒有接觸相關算題。
閑談兩句,下面步入正題,談一談九宮格和數字幻方。整個文章将分為三個部分。
第一部分以口訣方法填寫九宮格;
第二部分常規填寫九宮格的方法;
第三部分幻方的填法。
- 第一部分:九宮格填寫的口訣。
在《射雕英雄傳》中黃蓉曾破解九宮格,口訣:戴九履一,左三右七,二四有肩,八六為足,五居中央。
我雖然不太主張記憶這些規律,但卻不得不說記住這些基本填法,有助于解題效率,總不能碰到一次算一次吧。如果說1-9這幾個數字代表編碼的話,那麼對于有相同規律的數字比如連續的9個數字33-41或等差的數字3,6,9,12,15,18,21,24,27,便可直接編上号碼填入。
另外在九宮格中,中間部分9-5=5-1=4,7-5=5-2=2,也就是差相等,而且右角落(9 7)÷2=8,(9 3)÷2=6,(3 1)÷2=2,(7 1)÷2=4,這些在非規則(比如非等差無規律數)九宮格中或可用到
- 第二部分:最基本填寫九宮格方法(完全沒接觸過口訣)。
首先:計算1 2 3 4 5 6 7 8 9可知和為45,則如果單按行算可知三行和便是45,所以每行和為15,即橫豎、斜向和均為15。
如上圖所示,兩向斜方格,中間一橫、一豎方格,相當于4個15相加,總和為60,已将所有方格計算在内卻要比1-9的總和大15。仔細觀察可知中央格多加了3次,所以可知中央格為5。
在剩餘的數中,可組成和為15的有四組,而這所有的四組數字中1,3,7,9各出現1次,2,4,6,8各出現兩次,再從邊角位置的特殊性可知,偶數2,4,6,8填入邊角,1,2,7,9填入中間格,同時按1,9和2,8以及3,7和4,6成對。
這樣便可填出九宮格,因為上面已填所以不再贅述,但整個九宮格旋轉還是有很多變化的。
- 第三部分:幻方的填法。
《射雕英雄傳》中也提到了四宮格、五宮格等。其實對于這種将數字安排在正方形格子中,使每行、列和對角線上的數字和都相等的方法有一個統一的的名字叫做幻方,其中3行3列的是3階幻方、4行4列的是四階幻方,N行N列的便是N階幻方。
那麼對于高階幻方我們該怎麼填呢?
對于N階幻方,可以分為3類:當N為奇數時,N為4的倍數、N為其它偶數(4n 2的形式)
1、當N為奇數時最為簡單,它就是4步走。
⑴ 将1放在第一行中間一列;
⑵ 從2開始直到n×n止各數依次按下列規則存放:
按 45°方向行走,如向右上,每一個數存放的行比前一個數的行數減1,列數加1
⑶ 如果行列範圍超出矩陣範圍,則回繞(繞到其下一列,并移至最後一行,如果已超出最右側,則将數字填入最左側行數同樣減1,如果已超出最頂行、最右列,則填入到上一個數的下方。)。
⑷ 如果按上面規則确定的位置上已有數,或上一個數是第1行第n列時則把下一個數放在上一個數的下面。
它的口訣如下:
居上行正中央,
依次斜填切莫忘,
上出框界往下寫,
右出框時左邊放,
重複便在下格填,
出角重複一個樣。
如3階動圖。
5階幻方:
至于7階、9階幻方可自行填寫,權當娛樂,填好也可以發評論。
2、當N為4階、8階等4的倍數階時。
采用對稱元素交換法。
首先把數1到n×n按從上至下,從左到右順序填入矩陣
然後将方陣的所有4×4子方陣中的兩對角線上位置的數關于方陣中心作對
稱交換,即a(i,j)與a(n 1-i,n 1-j)交換,所有其它位置上的數不變。
(或者将對角線不變,其它位置對稱交換也可)
**以上方法隻适合于n=4時**
如4階幻方
8階幻方不再舉例。
下面看4n 2即普通的偶數幻方,這種幻方相對麻煩一些,方法也不唯一,這裡隻說一種方法。
第一步:先看幻方形式,我們以6階幻方舉例。如果4n 2=6,則n=1(稍後有用)。
将幻方分為四部分,左上、左下、右上、右下,并将1-36/4=9,10-18,19-27,28-36分别填入四角,順序為左上、右下,右上、左下,并按奇數幻方填好。
如圖:
從左上和左下表格中按中心兩邊分别選n個數,中間行選n個數,且中心格必選,這裡n=1(左上,左下),同時在右上,右下表格中任一選n-1列,這裡n=1,n-1=0不用選。
按圖中顔色相同的位置(行數是N/4的差)進行調換翻轉得到如下形式:
上圖便是6階幻方填好後的形式,用excel驗證下有,行、列、斜向和均為111:
再填一個10階幻方:
先分塊分成4個5×5的幻方,并填好各角。
這裡中間行分别選了中央格左側和其本身2個(4n 2=10,n=2),然後在左側方向,中間行的上兩行和下兩行分别選了兩個,最後進行調換(調換形式是其對應的i 10/2行)
還有其他形式比如:
當然還有其他許多中變化,甚至可以組成和為不同數字的幻方,但需要等量變換。
以上便是幻方的填寫過程,當然這種寫法如果用在計算機編程中還是需要重新整理,不過遊戲娛樂用足以。
就寫這麼多,喜歡請收藏,也歡迎大家多多關注,轉發。
,