大家都知道
6 7 2
1 5 9
8 3 4
每行和=每列和=15
如果平衡讵阵的行数是,5,7,9……
那他们的和是多少,解是多少,请帮忙个个算法,什么语言都可以
6 7 2
1 5 9
8 3 4
每行和=每列和=15
如果平衡讵阵的行数是,5,7,9……
那他们的和是多少,解是多少,请帮忙个个算法,什么语言都可以
解决方案 »
- udp 接受数据不完整,如何解决? sniffer抓包,数据全部到达?
- 怎样统计sql的数据,将其显示到list或者编辑框中
- 公司改制,对员工意味着什么?欢迎讨论!
- 一个查看鼠标下的控件信息的小工具,自己开发的
- 在PreTranslateMessage中当捕获到一个字符后(如a),如何转义连发另两个字符(如bb)
- 在ACCESS中有一个很长的OLE字段,怎么使用SQL语句取到其中某一位的值。用的是ADO
- VC程序打包要用那几个DLL?
- 汇编语句中 asm dd 1234h 是什么意思?
- 在VC中编写MEX文件时出现的警告提示,是何意思,求解!
- Windows DDK是什么东西?
- CComPtr<IGraphBulider> PGB;怎么正确的释放?
- 帮帮忙!
整理人: winsy(2003-03-05 16:32:51), 站内信件
我在以前,见过当N=奇数(>=3)的算法,至于N=偶数的算法,我就没有见过了,我真希望已经有人求出其解了,可别忘了给我一份哦.... 以下是算法的要令(举例以N=3为例): 我们把生成后的N幻方,用二维数组存储,如:X(1 TO 3,1 TO 3)
如果把方阵画成纸上的方格图,则演示如下: FOR I = 1 TO N的平方
1)把1放在方格阵中第一行的正中间一列,如:X(1,2)=1
2)从方格等于1的位置开始数起,方法为行加1,列减1。
3)当行或列有一边跑出边界时,位置就变成到未跑出边界的列或行的对边
位置,如:X(1,2)—>X(0,3)时,行跑出边界,此时把位置
X(0,3)移到位置X(3,3)=2
4)当行和列同时跑出边界,或者位置上已经有数时,新位置则成为了行加1 列不变,如:当X(1,3)—>X(0,4)时,行与列都跑出了边界,此时, 新位置成为了X(2,3);当X(2,1)—>X(1,2)时,此时
X(1,2)已经有数=1,此时新位置成为了X(3,1)=4
5)填数的原则为:从第一个数(等于1)开始,每到到一新格,数加1,直到 数等于N的平方
NEXT I 每线上的和 = (1+N的平方)/2 * N
如N=3时和 = (1+9)/2 * 3 = 15 以上是N=奇数的幻方的算法,不知我是否以叙述清楚,望来信交流。至于不用
算法的求解,我可是没有去算过,有网友求出其解的时候,希望能给我一份解
法,多谢了。 --
※ 来源:.月光工作室 http://www.moon-soft.com.[FROM: 202.96.142.116]