介紹
數獨幻方是一個數字魔方,一種數字遊戲。
幻方
幻方是什麼呢?如右圖就是一個幻方,即將n×n(n>=3)個數字放入n×n的方格內,使方格的各行、各列及對角線上各數字之各相等。
8 1 6
3 5 7
4 9 2
當n為奇數時,我們稱幻方為奇階幻方。可以用Merzirac法與loubere法實現,故命名為horse法。
偶階幻方
當n為偶數時,我們稱幻方為偶階幻方。當n可以被4整除時,我們稱該偶階幻方為雙偶幻方;當n不可被4整除時,我們稱該偶階幻方為單偶幻方。可用了Hire法、Strachey以及YinMagic將其實現,Strachey為單偶模型,我對雙偶(4m階)進行了重新修改,製作了另一個可行的數學模型,稱之為Spring。YinMagic是我於2002年設計的模型,他可以生成任意的偶階幻方。
無限伸展的圖形
楊輝法構造奇階幻方
把幻方看成一個兩端突出的九宮,把數字從左到右斜排 (九子斜排),把上下,左右之數依次對調(上下變更,左右對易),把左上、左下,右上,右下的數“拉”出來(四維突出)
4 9 2
3 5 7
8 1 6
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個小格,其他行左側邊緣取m-1列,將其與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方格內的數字都可以組成一個幻方。則稱該幻方為魔鬼幻方。
用我研究的Horse法構造的幻方是魔鬼幻方。如下的幻方更是魔鬼幻方,因為對於任意四個在兩行兩列上的數字,他們的和都是34。此幻方可用YinMagic方法生成。
15 10 3 6
4 5 16 9
14 11 2 7
1 8 13 12