感谢您的回复,首先我要感谢您帮助我,并且我已经在几个网站上发布了这个,也没有人试图提供帮助。
对于我的代码,我想做的是排列计数。
它将从上到下计数
1,2,3
1,2,3
1,2,3
output to
111 = 1
112 = 1
113 = 1
121 = 1
122 = 1
123 = 1
133 = 1
211 = 1
212 = 1
213 = 1
333 = 1
并继续直到所有数字都计数并存储到数组中,该数组可以检查毕竟有多少数
代码将检查输入数字并计算结果数量,并显示结果,结果有多少,每个结果都有多少个排列计数。
很难做到?。
无论如何,谢谢你的帮助。
答案 0 :(得分:1)
我猜,这并不难。这只是标准的排列事物。你需要使用一点递归:
function permute(size) {
var range = getRange(size);
var result = [];
getSubPerms('', range, result);
return result;
};
function getRange(size) {
var range = [];
for (var i = 0; i < size; i++) {
range.push(i + 1);
}
return range;
}
function getSubPerms(perm, range, result) {
for (var i = 0; i < range.length; i++) {
var perm2 = perm + range[i];
if (perm2.length == range.length) {
result.push(perm2);
} else {
getSubPerms(perm2, range, result);
}
}
}
var foo = permute(4); //an array of all of your results.
alert(foo.length); //256
但是,如果您只对它的长度感兴趣,而不必生成结果,则只需Math.pow(size, size)
即可获得结果的长度。