定義
在一個由若幹個排列整齊的數組成的正方形中,圖中任意一橫行、一縱行及對角線的幾個數之和都相等,具有這種性質的圖表,稱為“幻方”。我國古代稱為“河圖”、“洛書”,又叫“縱橫圖”。n階幻方是由前n2個自然數組成的一個n階方陣,其各行、各列及兩條對角線所含的n個數的和相等。
曆史
宋代數學家楊輝稱之為縱橫圖。
所謂縱橫圖,它是由1到n2,這n2個自然數按照一珲的規律排列成N行、N列的一個方陣。它具有一種廳妙的性質,在各種幾何形狀的表上排列适當的數字,如果對這些數字進行簡單的邏輯運算時,不論采取哪一條路線,最後得到的和或積都是完全相同的。
大約兩千多年前西漢時代,流傳夏禹治水時,黃河中躍出一匹神馬,馬背上馱著一幅圖,人稱“河圖”;又洛水河中浮出一隻神龜,龜背上有一張象徵吉祥的圖案稱為“洛書”。他們發現,這個圖案每一列,每一行及對角線,加起來的數字和都是一樣的,這就是我們現在所稱的幻方.也有人認為“洛書”是外星人遺物;而"河圖"則是描述了宇宙生物(包括外星人)的基因排序規則,幻方是外星人向地球人的自我介紹。另外前幾年在上海浦東陸家嘴地區挖出了一塊元朝時代伊斯蘭教信徒所挂的玉挂,玉挂的正面寫著:“萬物非主,惟有真宰,默罕默德,為其使者”,而玉挂的另一面就是一個四階幻方。
關于幻方的起源,中國有“河圖”和“洛書”之說。相傳在遠古時期,伏羲氏取得天下,把國家治理得井井有條,感動了上花于是黃河中躍出一匹龍馬,背上馱着一張圖,反作為禮物獻給他,這就是“河圖”,了是最早的幻方伏羲氏賃借着“河圖”而演繹出了八卦,後來大禹治洪水時,咯水中浮出一隻大烏龜,它的背上有圖有字,人們稱之為“洛書”。“洛書”所畫的釁中共有黑、白圓圈45個。把這些連在一起的小圓和數目表示出來,得到九個。這九個數就可以組成一個縱橫圖,人們把由九個數3行3列的幻方稱為3階幻方,除此之外,還有4階、5階...
後來,人們經過研究,得出計算任意階數幻方的各行、各列、各條對角線上所有數的和的公式為:Nn=1/2n(n2+1),其中n為幻方的階數,所求的數為Nn。幻方最早記載于我國公元前500年的春秋時期《大戴禮》中,這說明我國人民早在2500年前就已經知道了幻方的排列規律。而在國外,公元130年,希臘人塞翁才第一次提起幻方。我國不僅擁用幻方的發明權,而且是對幻方進行深入研究的國家。公元13世紀的數學家楊輝已經編制出3-10階幻方,記載在他1275年寫的《續古摘廳算法》一書中。在歐洲,直到574年,德國著名畫家丢功才繪制出了完整的4階幻方。而在國外,十二世紀的阿拉伯文獻也有六階幻方的記載,我國的考古學家們曾經在西安發現了阿拉伯文獻上的五塊六階幻方,除了這些以外,曆史上最早的四階幻方是在印度發現的,那是一個完全幻方(後面會提到),而且比中國的楊輝還要早了兩百多年,印度人認為那是天神的手筆。
1956年西安出土一鐵片闆上所刻的六階幻方(古阿拉伯數字),十三世紀,東羅馬帝國才對幻方産生興趣,但卻沒有什麼成果。直到十五世紀,住在君士坦丁堡的魔索普拉才把我國的縱橫圖傳給了歐洲人,歐洲人認為幻方可以鎮壓妖魔,所以把它作為護身符,也把它叫作“Magic Square”。歐洲最早的幻方是在德國一位名畫家Albrecht Dure的畫裡的,上面有一個四階幻方,在丢勒這幅畫中,象征大地之神的女兒的梅倫可利亞是個有兩隻翅膀支頤而坐的恬靜少女,少女頭頂上代表數學的4×4幻方。幻方上的數字橫豎加起來都是34,這是著名的斐波那契(Fibonacci)數列中的數字。而這個幻方的下面兩個數字正好是這幅畫的制作年代(1514).這是歐洲最古老的幻方。
規律
三階幻方(1-9):各行、各列、各條對角線上所有數的和都為15
四階幻方(1-16):各行、各列、各條對角線上所有數的和都為36
1+2+...+16=16*17/2=136
136/4=34
各行、各列、各條對角線上所有數的和都為34 (非36)
十階幻方(1-100):各行、各列、各條對角線上所有數的和都為505
世界紀錄
目前中國取得不少幻方世界紀錄:幻方專家李文第一位構造成功10階标準幻立方,第一位構造出最低階729階五次幻方,和多項平方幻方世界紀錄,幻方專家蘇茂挺第一位構成功32階完美平方幻方等。任意階幻方構造法,任意維幻方構造法,任意次幻方構造法,都早已找到。不存在最大階幻方的世界紀錄之類。對于各種媒體報導的幻方世界之最,很多是不實報導,不存在未解最大階數幻方。
幻方欣賞
中國幻方網站
在線二維任意階幻方生成;
法國高次幻方網站;
日本多維幻方網站;
富蘭克林的幻方;
12階幻方
12階幻方
九階平方幻方;
十二階完美幻方(每個2×2子矩陣和為286):
種類
現在的幻方種類很多,如:一般幻方、對稱幻方、同心幻方、完美幻方;平面幻方(二維)、幻立方(三維)、多維幻方;平方幻方、立方幻方、高次幻方、高次多維幻方;魔鬼幻方、馬步幻方、多重幻方、六角幻方、雙料幻方、幻環、幻圓等等。
編制程序
利用計算機編程序,可求解出任意階幻方。(但數字位數受電腦限制,實際上隻能是有限範圍内的任意階)對于某些平方幻方,高次幻方,利用計算機輔助計算,也可快速求得。一次幻方,一次幻立方,一次多維幻方,甚至可用簡單公式全部求得。某些類型的平方幻方,甚至高次高維幻方,也可用公式求得。
在幻方公式求解方法,中國處于世界領先水平,中國李文的高維高次幻方公式,是幻方理論中的精品。吳碩辛的高次幻方理論,也可用公式求解。
構造
在《射雕》中郭黃二人被裘千仞追到黑龍潭,躲進瑛姑的小屋。瑛姑出了一道題:數字1——9填到三行三列的表格中,要求每行、每列、及兩條對角線上的和都相等。這道題難倒了瑛姑十幾年,被黃蓉一下子就答出來了。
4 9 2
3 5 7
8 1 6
這就是一個最簡單的3階平面幻方。因為幻方的智力性和趣味性,很遊戲和玩具都與幻方有關,如捉放曹、我們平時玩的六面體,也成為學習編程時的常見問題。南宋數學家楊輝,在他著的《續古摘奇算法》裡介紹了這種方法:隻要将九個自然數按照從小到大的遞增次序斜排,然後把上、下兩數對調,左、右兩數也對調;最後再把中部四數各向外面挺出,幻方就出現了。 (摘自《趣味數學辭典》)最簡單的幻方就是平面幻方,還有立體幻方、高次幻方等。對于立體幻方、高次幻方目前世界上很多數學家仍在研究,現在隻讨論平面幻方。對平面幻方的構造,分為三種情況:N為奇數、N為4的倍數、N為其它偶數(4n+2的形式)
⑴ N 為奇數時,最簡單
(1) 将1放在第一行中間一列;
(2) 從2開始直到n×n止各數依次按下列規則存放:按 45°方向行走,如向右上每一個數存放的行比前一個數的行數減1,列數加1
(3) 如果行列範圍超出矩陣範圍,則回繞。例如1在第1行,則2應放在最下一行,列數同樣加1;
(4) 如果按上面規則确定的位置上已有數,或上一個數是第1行第n列時,則把下一個數放在上一個數的下面。
⑵ N為4的倍數時
采用對稱元素交換法。首先把數1到n×n按從上至下,從左到右順序填入矩陣,然後将方陣的所有4×4子方陣中的兩對角線上位置的數關于方陣中心作對稱交換,即a(i,j)與a(n-1-i,n-1-j)交換,所有其它位置上的數不變。(或者将對角線不變,其它位置對稱交換也可)
⑶ N 為其它偶數時
當n為非4倍數的偶數(即4n+2形)時:首先把大方陣分解為4個奇數(2m+1階)子方陣。按上述奇數階幻方給分解的4個子方陣對應賦值。上左子陣最小(i),下右子陣次小(i+v),下左子陣最大(i+3v),上右子陣次大 (i+2v)。即4個子方陣對應元素相差v,其中v=n*n/4。四個子矩陣由小到大排列方式為 ① ③ ④ ②,然後作相應的元素交換:a(i,j)與a(i+u,j)在同一列做對應交換(j
奇階幻方
當n為奇數時,我們稱幻方為奇階幻方。可以用Merzirac法與loubere法實現,根據我的研究,發現用國際象棋之馬步也可構造出更為神奇的奇幻方,故命名為horse法。
偶階幻方
當n為偶數時,我們稱幻方為偶階幻方。當n可以被4整除時,我們稱該偶階幻方為雙偶幻方;當n 不可被4整除時,我們稱該偶階幻方為單偶幻方。可用了Hire法、Strachey以及YinMagic将其實現,Strachey為單偶模型,我對雙偶(4m階)進行了重新修改,制作了另一個可行的數學模型,稱之為Spring。YinMagic是2002年設計的模型,他可以生成任意的偶階幻方。
在填幻方前我們做如下約定:如填定數字超出幻方格範圍,則把幻方看成是可以無限伸展的圖形,如下圖:
Merzirac法生成奇階幻方
在第一行居中的方格内放1,依次向右上方填入2、3、4…,如果右上方已有數字,則向下移一格繼續填寫。如下圖用Merziral法生成的5階幻方:
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
loubere法生成奇階幻方
在居中的方格向上一格内放1,依次向右上方填入2、3、4…,如果右上方已有數字,則向上移二格繼續填寫。如下圖用Louberel法生成的7階幻方:
30 39 48 1 10 19 28
38 47 7 9 18 27 29
46 6 8 17 26 35 37
5 14 16 25 34 36 45
13 15 24 33 42 44 4
21 23 32 41 43 3 12
22 31 40 49 2 11 20
horse法生成奇階幻方
先在任意一格内放入1。向左走1步,并下走2步放入2(稱為馬步),向左走1步,并下走2步放入3,依次類推放到n。在n的下方放入n+1(稱為跳步),再按上述方法放置到2n,在2n的下邊放入2n+1。如下圖用Horse法生成的5階幻方:
77 58 39 20 1 72 53 34 15
6 68 49 30 11 73 63 44 25
16 78 59 40 21 2 64 54 35
26 7 69 50 31 12 74 55 45
36 17 79 60 41 22 3 65 46
37 27 8 70 51 32 13 75 56
47 28 18 80 61 42 23 4 66
57 38 19 9 71 52 33 14 76
67 48 29 10 81 62 43 24 5
一般的,令矩陣[1,1]為向右走一步,向上走一步,[-1,0]為向左走一步。則馬步可以表示為2X+Y,{X∈{[1,0], [-1,0]},Y∈{[0,1], [0,-1]}}∪{Y∈{[1,0], [-1,0]},X∈{[0,1], [0,-1]}}。對于2X+Y相應的跳步可以為2Y,-Y,X,-Y,X,3X,3X+3Y。上面的的是X型跳步。Horse法生成的幻方為魔鬼幻方。
Hire法生成偶階幻方
将n階幻方看作一個矩陣,記為A,其中的第i行j列方格内的數字記為a(i,j)。在A内兩對角線上填寫1、2、3、……、n,各行再填寫1、2、3、……、n,使各行各列數字之和為n*(n+1)/2。填寫方法為:第1行從n到1填寫,從第2行到第n/2行按從1到進行填寫(第2行第1列填n,第2行第n列填1),從第n/2+1到第n行按n到1進行填寫,對角線的方格内數字不變。如下所示為6 階填寫方法:
1 5 4 3 2 6
6 2 3 4 5 1
1 2 3 4 5 6
6 5 3 4 2 1
6 2 4 3 5 1
1 5 4 3 2 6
如下所示為8階填寫方法(轉置以後):
1 8 1 1 8 8 8 1
7 2 2 2 7 7 2 7
6 3 3 3 6 3 6 6
5 4 4 4 4 5 5 5
4 5 5 5 5 4 4 4
3 6 6 6 3 6 3 3
2 7 7 7 2 2 7 2
8 1 8 8 1 1 1 8
将A上所有數字分别按如下算法計算,得到B,其中b(i,j)=n×(a(i,j)——1)。則 AT+B為目标幻方
(AT為A的轉置矩陣)。如下圖用Hire法生成的8階幻方:
1 63 6 5 60 59 58 8
56 10 11 12 53 54 15 49
41 18 19 20 45 22 47 48
33 26 27 28 29 38 39 40
32 39 38 36 37 27 26 25
24 47 43 45 20 46 18 17
16 50 54 53 12 11 55 9
57 7 62 61 4 3 2 64
Strachey法生成單偶幻方
将n階單偶幻方表示為4m+2階幻方。将其等分為四分,成為如下圖所示A、B、C、D四個 2m+1階奇數幻方。
A C
D B
A用1至2m+1填寫成(2m+1)2階幻方;B用(2m+1)2+1至2*(2m+1)2填寫成2m+1階幻方;C用2*(2m+1)2+1至3*(2m+1)2填寫成2m+1階幻方;D用3*(2m+1)2+1至4*(2m+1)2填寫成 2m+1階幻方;在A中間一行取m個小格,其中1格為該行居中1小格,另外m-1個小格任意,其他行左側邊緣取m列,将其與D相應方格内交換;B與C接近右側m-1列相互交換。如下圖用Strachey法生成的6階幻方:
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
Spring法生成以偶幻方
将n階雙偶幻方表示為4m階幻方。将n階幻方看作一個矩陣,記為A,其中的第i行j列方格内的數字記為a(i,j)。先令a(i,j)=(i-1)*n+j,即第一行從左到可分别填寫1、2、3、……、n;即第二行從左到可分别填寫n+1、n+2、n+3、……、2n;…………之後進行對角交換。對角交換有兩種方法:
方法一;将左上區域i+j為偶數的與幻方内以中心點為對稱點的右下角對角數字進行交換;将右上區域i+j為奇數的與幻方内以中心點為對稱點的左下角對角數字進行交換。(保證不同時為奇或偶即可。)
方法二;将幻方等分成m*m個4階幻方,将各4階幻方中對角線上的方格内數字與n階幻方内以中心點為對稱點的對角數字進行交換。
如下圖用Spring法生成的4階幻方:
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
YinMagic構造偶階幻方:
先構造n-2幻方,之後将其中的數字全部加上2n-2,放于n階幻方中間,再用本方法将邊緣數字填寫完畢。本方法适用于n>4的所有幻方,我于2002年12月31日構造的數學模型。YinMagic法可生成6階以上的偶幻方。如下圖用 YinMagic法生成的6階幻方:
10 1 34 33 5 28
29 23 22 11 18 8
30 12 17 24 21 7
2 26 19 14 15 35
31 13 16 25 20 6
9 36 3 4 32 27
魔鬼幻方
如将幻方看成是無限伸展的圖形,則任何一個相鄰的n*n方格内的數字都可以組成一個幻方。則稱該幻方為魔鬼幻方。如下的幻方更是魔鬼幻方,因為對于任意四個在兩行兩列上的數字,他們的和都是34。此幻方可用YinMagic方法生成。
15 10 3 6
4 5 16 9
14 11 2 7
1 8 13 12
羅伯法:
1居上行正中央,仿次斜填莫相忘,上出框時往下填,右出框時左邊放,排重便在下格填,右上排重一個樣。