js实现的排列组合算法示例图,js实现的排列组合算法示例题

js实现的排列组合算法示例图,js实现的排列组合算法示例题,JS实现的排列组合算法示例

本文主要介绍JS实现的排列组合算法,并结合完整的实例详细分析排列组合算法的原理和javascript相关实现技巧。有需要的可以参考一下。

本文阐述了用JS实现的排列组合算法。分享给你,供你参考,如下:

数学上有排列组合,用来计算概率。

例如,从四个数字中随机选择两个数字。从5个号码中随机抽取3个号码的情况。(这里只考虑没有顺序的情况)。

公式:C(n,m)=n!/[m!(n-m)!]=n * (n-1) *.* (n-m1)/[1 * 2 *.* m],如C(5,2)=[5*4]/[1*2]=10。

图示:有四个数字:1,2,3,4。从这四个数字中,如果选择任意两个数字有多少种情况:[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]有六种情况。

用下面的代码实现从5个数字中随机抽取3个数字的情况(不分先后)。

脚本

var array=[1,2,3,4,5];

for(var i=0,len1=array.length我len1i ) {

var a2=array . concat();

/*

排除之前已合并的数据。

比如第一次,i[0]=1。这时有两层循环,只有2~5个循环。

第二次,i[1]=2。此时有2层循环,只有3~5个循环。

同样,也将三层循环与两层循环进行比较。

*/

a2.splice(0,I 1);

for(var j=0,len2=a2.lengthj len2j ) {

var a3=a2 . concat();

a3 .拼接(0,j ^ 1);

for(var k=0,len3=a3.lengthk len3k ) {

console . log(array[I] a2[j] a3[k]);

}

}

}

/脚本

运行结果:

如果需要几个数字,可以嵌套循环几次。

感兴趣的朋友可以使用

在线HTML/CSS/JavaScript代码运行工具

:http://tools.jb51.net/code/HtmlJsRun来测试上述代码的运行效果。

对更多JavaScript相关内容感兴趣的读者可以查看我们的专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》和《JavaScript查找算法技巧总结》。

希望这篇文章对大家的JavaScript编程有所帮助。

js实现的排列组合算法示例图,js实现的排列组合算法示例题