一、幻方按照
階數可分
成了三類,
即奇數階幻方
、雙偶階幻方
、單偶階幻方。
二、奇數階幻方(勞伯法)
奇數階幻方最經典的填法是
羅伯法。填寫的方法是: 把
1(或最小的數)放在第一行正中;按以下規律排列剩下的
(n×n-1)
個數:(1)
每乙個數放在前乙個數的
右上一格; (2
)如果這個數所要放的格已經超出了頂行那麼就把它放在底行,仍然要放在右一列;(3
)如果這個數所要放的格已經超出了最右列那麼就把它放在最左列,仍然要放在上一行; (
4)如果這個數所要放的格已經超出了頂行且超出了最右列,那麼就把它放在底行且最左列; (
5)如果這個數所要放的格已經有數填入,那麼就把它放在前乙個數的下一行同一列的格內。
例,用該填法獲得的
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二、雙偶數階幻方(海爾法)
所謂雙偶階幻方就是當
n可以被
4整除時的偶階幻方,即
4k階幻方。在說解法之前我們先說明乙個「互補數」定義:就是在
n階幻方中,如果兩個數的和等於幻方中最大的數與
1的和(即
n×n+
1),我們稱它們為一對互補數。如在三階幻方中,每一對和為
10的數,是一對互補數 ;在四階幻方中,每一對和為
17的數,是一對互補數。
雙偶數階幻方最經典的填法是海爾法。填寫的方法是: 以
8階幻方
為例:(1)
先把數字按順序填。然後,按
4×4把它分割成
4塊(如圖) 1
2 34 5
6 78 9
10 11
12 13
14 15
16 17
18 19
20 21
22 23
24 25
26 27
28 29
30 31
32 33
3435
3637 38
39 40
414243
4445 46
47 48
495051
5253 54
55 56
575859
6061 62
63 64
(2)每個小方陣對角線上的數字(如左上角小方陣部分),換成和它互補的數。 64
2 361 60
6 757 9
55 54
12 13
51 50
16 17
47 46
20 21
43 42
24 40
26 27
37 36
30 31
33 32
34 35
29 28
38 39
25 41
23 22
44 45
19 18
48 49
15 14
52 53
11 10
56 8
58 59
5 462 63
1 三、單偶數階幻方(斯特拉茲法)
所謂單偶階幻方就是當
n不可以被
4整除時的偶階幻方,即
4k+2
階幻方。如
(n=6,10
,14……)
的幻方。
單偶數階幻方
最經典的填法是
斯特拉茲法
。填寫的方法是: 以
10階幻方為例。這時,
k=2。(1
)把魔方陣分為a,
b,c,
d四個象限,這樣每乙個象限肯定是奇數階。用羅伯法,依次在
a象限,
d象限,
b象限,
c象限按奇數階幻方的填法填數。
2)在a象限的中間行、中間格開始,按自左向右的方向,標出k格。
a象限的其它行則標出最左邊的
k格。將這些格,和
c象限相對位置上的數互換位置。
3)在b象限所有行的中間格,自右向左,標出k-
1格。(注:
6階幻方由於k-
1=0,所以不用再作b、
d象限的資料交換
),將這些格,和
d象限相對位置上的數互換位置。
奇數幻方 輸入N得到NXN幻方
include intmain for int j 0 j1 j h j sum1 for int j 0 j1 j l j sum2 for int i 0 i 判斷每行 列相等個數 for int j 0 j1 j 計算對角線數字和 e n 1 for int i 0 i1 i 計算反對角線數字...
四階幻方 反幻方c
把1 16的數字填入4x4的方格中,使得行 列以及兩個對角線的和都相等,滿足這樣的特徵時稱為 四階幻方。四階幻方可能有很多方案。如果固定左上角為1,請計算一共有多少種方案。比如 1 2 15 16 12 14 3 5 13 7 10 4 8 11 6 9 以及 1 12 13 8 2 14 7 11...
5階幻方 奇異幻方 18中心 遺傳演算法
用遺傳演算法,配合資料庫,找了乙個五階的幻方。顛覆認知的是,18在中心,而且還成立。一般認為13在中心的。以下是找到的部分結果 18,10,25,7,5,6,22,3,14,20,11,2,13,24,15,9,12,23,4,17,21,19,1,16,8,18,12,23,7,5,6,22,1,...