您的位置:首页 > 其它

穷举一切可能的数值排列或组合(应该是类36先7的算法)

2010-05-22 10:18 956 查看
穷举一切可能的数值排列或组合

范例参数设置为'0123456789,任意6位数的所有排列。

程序代码

<script>

//排列

var j=0

function A(arr, num){

var r=[];

(function f(t,a,n){

if (n==0) { j++; return r.push(j+"."+t)};//

for (var i=0,l=a.length; i<l; i++){

f(t.concat(a[i]), a.slice(0,i).concat(a.slice(i+1)), n-1);

}

})([],arr,num);

return r;

}

var r2 = A("0123456789".split(""),6);

//document.write('0123456789,任意6位数的所有排列列举如:<ol><li>'+r2.join('</li><li>')+'</li></ol>');

document.write('0123456789,任意6位数的所有排列总数为'+j+';列举如下:<br>'+r2.join('<br>')+'');

//document.write('0123456789,任意6位数的所有排列总数为'+j);

</script>

另附:组合算法。

//组合

function C(arr, num){

var r=[];

(function f(t,a,n){

if (n==0) return r.push(t);

for (var i=0,l=a.length; i<=l-n; i++){

f(t.concat(a[i]), a.slice(i+1), n-1);

}

})([],arr,num);

return r;

}

改一改组合,算一算你中奖的机率,呵呵。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: