考考大家一个小问题(50分)

H

heiniu

Unregistered / Unconfirmed
GUEST, unregistred user!
有1到25共25个数字,组成一个5X5矩阵,要求:任何一条直线的5个数字相加结果都是65。
包括:每一行,每一列,对角线。。。。。。。
 
H

hhzh426

Unregistered / Unconfirmed
GUEST, unregistred user!
智能穷举?
经验公式?
这应该是一个数学问题!
 
H

heiniu

Unregistered / Unconfirmed
GUEST, unregistred user!
这是别人考我的一个问题,我想了一个中午,还没有想到,怪就怪自己太菜了,只好上来
请教各位大虾了
 
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
幻方问题——奇阶幻方
有经验公式,见LID=497760
 
I

iie

Unregistered / Unconfirmed
GUEST, unregistred user!
递归穷举就行,我用8086时候就写过,当时很慢,现在大概用不了1秒钟吧
 
T

Tense

Unregistered / Unconfirmed
GUEST, unregistred user!
这是奇阶幻方,算法简单
 
D

DelphiFish

Unregistered / Unconfirmed
GUEST, unregistred user!
赫赫
12|19|21|03|10|
18|25|02|09|11|
24|01|08|15|17|
05|07|14|16|23|
06|13|20|22|04|
 

张鸿林

Unregistered / Unconfirmed
GUEST, unregistred user!
几年前我研究过6*6的方阵,算法没研究出来(386时代用枚举法算了好几天也没有结果),
倒是用手工硬给排出来了(用2年的业余时间!)
后来在一个电脑小报看到一个算法,但没有给出证明
谁能给出合理的算法并给出证明?
听说印度有位数学家,化了40余年的功夫,计算出6边形等和阵列,大病一场后,
手稿丢了,后来再化20余年,没得出结果
谁对这个问题感兴趣?
 

大唐双龙

Unregistered / Unconfirmed
GUEST, unregistred user!
这与3*3是一样道理的。
算法如下:

1。将1放在第一行的中间列。
2。如果当前数是在第一行,则将下一数放在下一列的最后一行。
3。如果当前数是在最后一列,则将下一数放在上一行的第一列。
4。如果当前数是在第一行也在最后一列,则将下一数放在当前数的下方。
5。如果当前数的右上方是空,则将下一个数放在右上方。
6。如果当前数的右上方有数,则将下一个数放在当前数的下方。

3*3  5*5 7*7 都是这样的。
我相信(2n+1)*(2n+1)也是同样的道理。(n是自然数)
各位有空的话不妨证明一下,别忘了将结果告诉我。。。

具体的排列如下:
3*3 (1--9) 行列和为15
8 1 6
3 5 7
8 4 2

5*5 (1--25) 行列和为65
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
7*7 (1--49) 行列和为175

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
 
Z

zjxxln

Unregistered / Unconfirmed
GUEST, unregistred user!
我在数学竞赛辅导班上老师专门讲过,对于奇数行“大唐双龙”的做法完全正确,对于偶数
行,可先考虑n-1行,在外围最后计算剩下的数。
 
H

heiniu

Unregistered / Unconfirmed
GUEST, unregistred user!
多人接受答案了。
 

Similar threads

D
回复
0
查看
745
DelphiTeacher的专栏
D
S
回复
0
查看
947
SUNSTONE的Delphi笔记
S
S
回复
0
查看
768
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部