把1到25填到5x5方格中

使得每行的五个数、每列的五个数及斜对角的五个数的和相等

五阶幻方
10 11 17 23 `4
22 `3 `9 15 16
14 20 21 `2 `8
1` 7` 13 19 25

9 `3 22 16 15
21 20 14 `8 `2
13 `7 `1 25 19
5 `24 18 12 `6
17 11 10 `4 23

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

下面这些构造方法都是比较适合于编程的。构造幻方分奇数阶幻方、4n型偶数幻方、4n+2型的偶数幻方(以下简称双偶数、单偶数)。

构造奇数阶较简单,常用的是连续摆数法。下面的n均指阶数,在这里(y,x)表示第y横行的第x个数。

(1)在第一行的正中间(即[1,(n+1)/2])放上1 (2)若数a的位置在(y,x),则a+1的位置在: (y-1,x+1),若有这个位子且里面没数 (n,x+1),若y=1且x<n (y-1,1),若x=n且y>1 (y+1,x),若x=n且y=1或(y,x)已经有数。(y,x)已经有数的充要条件是a=n(mod n) (3)所构成的(n×n)方即为一个幻方。

我们还可以把连续摆数法推广,先定义几个概念:

普通向量:正常走步的情况。(即上面第一种情况)正常走步记作(b,a)。中断向量:即走到(1,n)这个格子或(y,x)已经有数的情况。记作(d,c) 下面是几个推广的情况:(1,-1)(0,1);(1,-1)(0,2);(2,1)(1,-2);(2,1)(1,-1);(2,1)(1,0);(2,1)(1,2)

下面是构造双偶数阶幻方:

对称法:把双偶数型的幻方分成四个正方形,在左上角正方形中每行每列各取一半打上○(实际上就是使无论从每行还是每列来看都刚好有一半有○,一半无○。)然后向剩下的三个小方块中映象(镜像对称),于是整个方阵都布好了○。(用电脑实行则可以选择在该布○的地方填上-1)。

接下来该填数了。适用于电脑的方法:向所有格子内填数,(推荐x,y分别从1~n的双重计数循环):若(y,x)没有○,则填入(y-1)*n+x;若(y,x)中有○,则填入(n-y+1)*n+x+1。适用于笔算的方法:从左上角依次1~n*n填数,遇上○则不填,这个数字还是要跳过去。填完后,把方阵旋转180度后再从1~n*n往○里填数,没有○的地方就不填,跳过数字。因为对称的原理,因此这回填的数刚好是上次跳过的数,这次跳过的刚好是上次填过的数。就形成了一个双偶数阶幻方。

下面介绍一下构造单偶数阶幻方的方法——斯特雷奇法

仍然是把单偶数阶幻方分成A、B、C、D四个小方阵,若按平面直角坐标系来看则第一、二、三、四象限分别为A、C、B、D(请一定注意A、B、C、D的位置!)再用连续摆数法将A、B、C、D填入数字,A方阵用1~a^2,B方阵用(a^2+1)~2a^2,C方阵用(2a^2+1)~3a^2,D用数字(3a^2+1~4a^2)。其中a=n/2。

这样的方阵还需进行调整。在A的中间一行左侧第2列起取m个方格(这里m=(n-2)/4),即取((n/4+0.5),2)~((n/4+0.5),(2+m))这几个方格,再取A中其它行的左边m个方格。把这些方格中的数字同D中相应方格中的数字对调。然后在C中各列的从右边起的m-1个方格重的数字同B中对调。

这样形成的大方阵就是幻方了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-01-30
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本回答被提问者采纳

把1到25填到5x5方格中 使得每行的五个数、每列的五个数及斜对角的五个...
将一到25填入下列方格中,要求每行每列相加得数相等,每个数只能填一次

把1到25填到5x5方格中
这样的方阵还需进行调整。在A的中间一行左侧第2列起取m个方格(这里m=(n-2)\/4),即取((n\/4+0.5),2)~((n\/4+0.5),(2+m))这几个方格,再取A中其它行的左边m个方格。把这些方格中的数字同D中相应方格中的数字对调。然后在C中各列的从右边起的m-1个方格重的数字同B中对调。这样...

5x5里面 1-25随机不重复数字 (可以用任何软件或者方法实现但是要附加...
回答:a1中输入=RANDBETWEEN(1,25) 回车,鼠标放在a1单元格右下角,出现黑十字,右拉,下拖动即可,有问题欢迎追问。

把1至25这25个数填入5x5的格子里,使横竖对角线上五数之和都相等的答案...
1.中位数在正中间的格子,中位数=(N^2+1)\/2;2.中数数N就是每行的和,按这个规律一大一小配对对称填入;

把1~25这25个自然数分别填入5X5的方格里,要使横行、竖行、斜行的5个...
25个数中有13个奇数,12个偶数 要想得到偶数必须有偶数个奇数,可以是2个奇数和3个偶数或4个奇数和1个偶数 所有奇数的个数不可能是有奇数个,所以不可能。

把1至25这25个数添入5x5的格子中,使每横行,竖行,对角上五数之和都相等...
4 8 12 16 25 17 21 5 9 13 10 14 18 22 1 行和:23 + 2 + 6 + 15 + 19 = 65 11 + 20 + 24 + 3 + 7 = 65 4 + 8 + 12 + 16 + 25 = 65 17 + 21 + 5 + 9 + 13 = 65 10 + 14 + 18 + 22 + 1 = 65 列和:23 + 11 + 4 + 17 + 10 = 65 2...

把1到25,填到这个5x5的格子里面,使每条线上,横着 竖着 斜着 相加都...
有用的话,望采纳

什么是五阶幻方?
每一行、每一列、两条对角线的和都等于65,通常称之为幻和值.此外还有五阶积幻方,就是将25个不同的数填入5X5个方格中,使每一行、每一列、两条对角线的乘积相等.另外我在网上还看到有人完成的五阶幻立方,就是将125个不同的数填入5^3的立方体,使每一层、排、列组成的15个面,以及6个斜切面,...

C语言:把1~25按行顺序依次填到5x5的二维数组a中,输出其左下三角的值以 ...
include "stdio.h"int main(int argc,char *argv[]){ int a[5][5],i,j,k,sum;printf("The results are as follows:\\n");for(sum=k=i=0;i<5;i++){ for(j=0;j<5;j++){ sum+=a[i][j]=++k;if(j<=i)printf("%3d",a[i][j]);} putchar('\\n');} printf("\\n...

1到25 填到5x5的空格中让横竖对角都等于85怎么做啊???
首先将13放在中间的格子里,以它为对称点,将对角线,中间一行,中间一列填好,剩下八个格就容易填了!!!~~~

相似回答