gpt4 book ai didi

Javascript - 排列和可能性

转载 作者:行者123 更新时间:2023-11-28 07:55:20 25 4
gpt4 key购买 nike

嗨,我正在寻找用 Javascript 生成一组字符的所有可能性。到目前为止,我的代码根据字符集“abc”和长度 3 生成此数组:

[“abc”、“acb”、“bac”、“bca”、“cab”、“cba”]

但是我想要生成的是字符集“abc”最大长度为 3 的所有可能性。a-ccc:

[“a”、“b”、“c”、“aa”、“ab”、“ac”、“ba”、“bb”、“bc”、“ca”、“cb” ,“cc”,“aaa”,“aab”,“aac”,“aba”,“abb”,“abc”....“ccc”]

这是我用来生成第一个数组的代码,任何帮助将不胜感激。



var 排列 = (function() {
var 结果 = [];
函数 doPermute(输入、输出、使用、大小、级别) {
如果(大小==级别){
var word = output.join('');
结果.push(word);
返回;
}
等级++;
for (var i = 0; i < input.length; i++) {
if (used[i] === true) {
继续;
}
使用[i]=真;
输出.推(输入[i]);
doPermute(输入、输出、使用、大小、级别);
使用[i]=假;
输出.pop();
}
}
返回 {
getPermutations:函数(输入,大小){
var chars = input.split('');
var 输出 = [];
var 使用 = new Array(chars.length);
doPermute(字符、输出、已使用、大小、0);
返回结果;
}
}
})();
功能测试(字母,大小){
var testResults = permutate.getPermutations(字母, 大小);
控制台.log(测试结果);
};
测试('abc',3)

最佳答案

试试这个:)

function allPermutations(letters,maxSize){
function permutations(letters,size){
var results=[];
for(var i=0;i<letters.length;i++){
var res=letters[i];
if(size===1){
results.push(res);
}else{
var rest=permutations(letters,size-1);
for(var j=0;j<rest.length;j++){
results.push(res+rest[j]);
}
}
}
return results;
};
var results=[];
for(var i=1;i<=maxSize;i++){
results=results.concat(permutations(letters,i));
}
return results;
}
console.log(allPermutations('abc',3));

http://codepen.io/anon/pen/ECHDK

关于Javascript - 排列和可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26166104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com