排列组合算法.htm
来自「=== === === === JavaScript经典源代码收集」· HTM 代码 · 共 36 行
HTM
36 行
<script>
var n=13, r=5;
var OR=new Array(1,2,3,4,5,6,7,8,9,'a','b','c','d');
var C=new Array();
var used=new Array();
var k=1;
function combine(pos,h)
{
var i;
/*如果已选了r个元素了,则打印它们*/
if (pos==r)
{
document.write("(",k++,") {",OR[C[0]]);
for (i=1; i<r; i++) document.write(",",OR[C[i]]);
document.write("}<br>");
return;
}
/*对于所有未用的元素*/
for (i=h; i<=n-r+pos; i++)
{
if (!used[i])
{
/*把它放置在组合中*/
C[pos] = i;
/*使用该元素*/
used[i]++;
/*搜索第i+1个元素*/
combine(pos+1,i+1);
/*恢复递归前的值*/
used[i]--;
}
}
}
combine(0,0);
</script>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?