Javascript 最简单的手工排列和组合
假设我有一个简单的数组Javascript 最简单的手工排列和组合,javascript,arrays,algorithm,combinations,permutation,Javascript,Arrays,Algorithm,Combinations,Permutation,假设我有一个简单的数组[“苹果”、“香蕉”、“柠檬”、“芒果”] 现在,这个数组的最简单的手动排列,比如选择3,重复是: let数组=[“苹果”、“香蕉”、“柠檬”、“芒果”]; for(设i=0;i
[“苹果”、“香蕉”、“柠檬”、“芒果”]代码>
现在,这个数组的最简单的手动排列,比如选择3,重复是:
let数组=[“苹果”、“香蕉”、“柠檬”、“芒果”];
for(设i=0;i
类似地,现在将此组合,选择3,不重复为:
let数组=[“苹果”、“香蕉”、“柠檬”、“芒果”];
for(设i=0;i
现在我想知道,是否有类似的简单手动方法来生成:
- 无重复排列
- 重复组合
基本上是最简单的方法,就像上面的例子,无需递归或复杂迭代-生成其他两个变量的类似方法。对于与重复的组合,您只需从i
而不是i+1
开始第二个循环,从j
而不是j+1
开始第三个循环。+1
基本上是禁止重复的
因为排列有点烦人。。。对于您展示的小案例,您可以明确检查重复:
for (let i=0; i<n; i++) {
for (let j=0; j<n; j++) {
if (i !== j) {
for (let k=0; k<n; k++) {
if (i !== k && j !== k) {
...
}
}
}
}
}
for(设i=0;i根据什么标准定义“简单”?这似乎是一个非常广泛的问题。认知上很简单。使用上面例子中的simple for循环,没有递归或复杂的迭代。本质上,如果有类似的方法来生成前面提到的其他两个,使用类似的方法。对不起,我不太明白你的意思。还不够清楚吗?太棒了!谢谢,没错我在寻找的是——想知道是否有可能将其提升为一个函数,该函数生成这些作为choosen
的算法。