C#穷举一道题 80
如图,左边是八个格子,每个格子里可以放一块右边的骨牌,骨牌分上下两块,每块上的点数等于实际数值,空白的做0,如第一块骨牌表示上0,下0,第二块上0下1,,这样左边格子放满...
如图,左边是八个格子,每个格子里可以放一块右边的骨牌,骨牌分上下两块,每块上的点数等于实际数值,空白的做0,如第一块骨牌表示上0,下0,第二块上0下1,,这样左边格子放满后,全图实际成为4行4列16个数字。要求4行,4列及对角两条线的数字和值均为6。要程序,不要结果。注:没块骨牌只能用一次。
如果有比较好的方法可以不穷举,如果穷举了可以合理去掉一些骨牌,比如6/6 5/6这些比较大的排肯定用不上的。另外,骨牌上的数字可以上下对调。 展开
如果有比较好的方法可以不穷举,如果穷举了可以合理去掉一些骨牌,比如6/6 5/6这些比较大的排肯定用不上的。另外,骨牌上的数字可以上下对调。 展开
展开全部
这个就是所谓的魔方矩阵或者叫幻方,你是不是写错了,和值怎么可能是6 ,4*4的幻方和值应该是34
平面魔方的一般定义:将自然数 1 到 N^2, 排列 N 行 N 列的方阵,使每行、每列及两条主对角线上的 N 个数的和都等于N (N^2+1)/2,这样的方阵称为 N 阶幻方。
N为4的倍数时
采用对称元素交换法。
首先把数1到n×n按从上至下,从左到右顺序填入矩阵
然后将方阵的所有4×4子方阵中的两对角线上的数关于大方阵中心作中心对称交换(注意是各各子矩阵对角线上面的数), 即a(i,j)与a(n+1-i,n+1-j)交换,所有其它位置上的数不变。(或者将对角线不变,其它位置对称交换也可)
平面魔方的一般定义:将自然数 1 到 N^2, 排列 N 行 N 列的方阵,使每行、每列及两条主对角线上的 N 个数的和都等于N (N^2+1)/2,这样的方阵称为 N 阶幻方。
N为4的倍数时
采用对称元素交换法。
首先把数1到n×n按从上至下,从左到右顺序填入矩阵
然后将方阵的所有4×4子方阵中的两对角线上的数关于大方阵中心作中心对称交换(注意是各各子矩阵对角线上面的数), 即a(i,j)与a(n+1-i,n+1-j)交换,所有其它位置上的数不变。(或者将对角线不变,其它位置对称交换也可)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询