解方程
整数A-S 为1-19的某一全排列,且满足A+B+C=D+E+F+G=L+K+J+I+H=M+N+O+P=Q+R+S=38
A+D+L=B+E+K+M=C+F+J+N+Q=G+I+O+R=H+P+S=38
L+M+Q=D+K+N+R=A+E+J+O+S=B+F+I+P=C+G+H=38
列出所有解。
原帖见http://topic.csdn.net/t/20041227/22/3680853.html 来源这个图形?
ADL
BEKM
CFJNQ
GIOR
HPS 原帖由 mathe 于 2008-1-24 13:27 发表 http://bbs.emath.ac.cn/images/common/back.gif
来源这个图形?
ADL
BEKM
CFJNQ
GIOR
HPS
这不是著名的费了亚当斯52年光阴的六角幻方吗? 原来还是挺有名的,搜索出一篇介绍它的文章:
http://blog.sina.com.cn/s/blog_4cfcf16501000cqq.html 这个题目人工用数学方法分析太难了,但是现在用计算机搜索应该不难。可以作为编程擂台赛的候选题:lol 我们首先可以考虑仅仅穷举EFIONK这六个数,也就是6角幻方中间一层。
最多需要枚举C(19,6)=27132.如果再考虑到轮换对称性和翻转对成性,还可以除以12,也就是最多只需要考虑2261种情况。
然后对于每种情况,余下还有13个变量。
而我们上面总共有15条方程(有两条多余),
可以直接解这个方程组就可以了。然后检查对应的解是否符合条件。
由于对应方程组左边矩阵不变,实际计算过程中还可以事先将矩阵的逆计算出来
对于每种情况只需要计算矩阵和响亮相乘就可以了。
这个计算过程应该可以非常快了,估计是毫秒级的。 不错,就是亚当斯六角幻方.当年我编代码穷举了6个小时才解出来12个解: 你的程序是实时运行吗?至少现在在我的计算机上是挺快的。 原帖由 mathe 于 2008-1-24 16:15 发表 http://bbs.emath.ac.cn/images/common/back.gif
这个题目人工用数学方法分析太难了,但是现在用计算机搜索应该不难。可以作为编程擂台赛的候选题:lol
未必,例如幻方的填写:
幻方用计算机太难了,但是人工用数学方法分析应该不难
回复 9# 的帖子
“幻方用计算机太难了”——这也只能归咎于程序开发者的算法太弱。人工解主要是个构造过程,可以迅速局部调整从而得到单个解或部分解,但这个计算机一样可以做到;
如果是要求得到全部解,更是需要请计算机来帮忙了。
页:
[1]
2