时间:2021-05-26
谜题
三阶幻方。试将1~9这9个不同整数填入一个3×3的表格,使得每行、每列以及每条对角线上的数字之和相同。
策略
穷举搜索。列出所有的整数填充方案,然后进行过滤。
JavaScript解
复制代码 代码如下:
/**
* Created by cshao on 12/28/14.
*/
function getPermutation(arr) {
if (arr.length == 1) {
return [arr];
}
var permutation = [];
for (var i=0; i<arr.length; i++) {
var firstEle = arr[i];
var arrClone = arr.slice(0);
arrClone.splice(i, 1);
var childPermutation = getPermutation(arrClone);
for (var j=0; j<childPermutation.length; j++) {
childPermutation[j].unshift(firstEle);
}
permutation = permutation.concat(childPermutation);
}
return permutation;
}
function validateCandidate(candidate) {
var sum = candidate[0] + candidate[1] + candidate[2];
for (var i=0; i<3; i++) {
if (!(sumOfLine(candidate,i)==sum && sumOfColumn(candidate,i)==sum)) {
return false;
}
}
if (sumOfDiagonal(candidate,true)==sum && sumOfDiagonal(candidate,false)==sum) {
return true;
}
return false;
}
function sumOfLine(candidate, line) {
return candidate[line*3] + candidate[line*3+1] + candidate[line*3+2];
}
function sumOfColumn(candidate, col) {
return candidate[col] + candidate[col+3] + candidate[col+6];
}
function sumOfDiagonal(candidate, isForwardSlash) {
return isForwardSlash ? candidate[2]+candidate[4]+candidate[6] : candidate[0]+candidate[4]+candidate[8];
}
var permutation = getPermutation([1,2,3,4,5,6,7,8,9]);
var candidate;
for (var i=0; i<permutation.length; i++) {
candidate = permutation[i];
if (validateCandidate(candidate)) {
break;
} else {
candidate = null;
}
}
if (candidate) {
console.log(candidate);
} else {
console.log('No valid result found');
}
结果
复制代码 代码如下:
[ 2, 7, 6, 9, 5, 1, 4, 3, 8 ]
描绘成幻方即为:
复制代码 代码如下:
2 7 6
9 5 1
4 3 8
分析
使用此策略理论上可以获取任意n阶幻方的解,但实际上只能获得3阶幻方这一特定解,因为当n>3时,获取所有填充方案这一穷举操作的耗时将变得极其巨大。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
谜题:三阶幻方,试将1~9这9个不同整数填入一个3×3的表格,使得每行、每列以及每条对角线上的数字之和相同。策略:穷举搜索。列出所有的整数填充方案,然后进行过滤
例如三阶魔方阵为:魔方阵有什么的规律呢?魔方阵分为奇幻方和偶幻方。而偶幻方又分为是4的倍数(如4,8,12……)和不是4的倍数(如6,10,14……)两种。下面
微信小程序主页能够展现照片三阶魔方可以看怎样插入图片三阶魔方三阶魔方有多种多样款式,任你挑选若要照片三阶魔方表明在主页,请在“小程序管理->主页合理布局”中加上
贝塞尔曲线有一阶、二阶、三阶、N阶一阶就是一条直线,有起点终点,没有控制点,对应方法就是canvas.drawLine(floatstartX,floatsta
全文考试大纲:淘宝大数据三阶魔方作用是什么?现在有转变吗?淘宝大数据三阶魔方是以前老商家常常听闻的一个协助店面做剖析的专用工具,自然,也是有很多人对它较为生疏,