最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)的排列組合算法示例

 更新時(shí)間:2019年07月16日 09:44:25   作者:愛在彩虹  
這篇文章主要介紹了JS實(shí)現(xiàn)的排列組合算法,結(jié)合完整實(shí)例形式詳細(xì)分析了排列組合算法的原理與javascript相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了JS實(shí)現(xiàn)的排列組合算法。分享給大家供大家參考,具體如下:

在數(shù)學(xué)中有排列組合,用來計(jì)算概率。

比如:從4個(gè)數(shù)字中,任意選擇兩個(gè)的情況。從5個(gè)數(shù)字中任意選擇3個(gè)數(shù)字的情況。(這里我們只考慮沒有順序的情況)。

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

舉例說明:有 1,2,3,4 四個(gè)數(shù)字,從這四個(gè)數(shù)字中,任意選擇兩個(gè)數(shù)字一共有多少種情況:[1,2], [1,3], [1,4], [2,3], [2,4], [3,4]一共有這六種情況。

下面用代碼實(shí)現(xiàn)從5個(gè)數(shù)字中任意選擇3個(gè)的情況(不考慮順序)。

<script>
var array = [1, 2, 3, 4, 5];
for(var i = 0, len1 = array.length; i < len1; i++) {
 var a2 = array.concat();
 /*
 排除之前已經(jīng)組合過的數(shù)據(jù)
 比如:第一次的時(shí)候,i[0] = 1, 這個(gè)時(shí)候2層循環(huán), 只循環(huán) 2~5, 
 第二次的時(shí)候, i[1] = 2, 這個(gè)時(shí)候2層循環(huán), 只循環(huán) 3~5
 同理:3層循環(huán)也是相比于2層循環(huán)來
 */
 a2.splice(0, i + 1);
 for(var j = 0, len2 = a2.length; j < len2; j++) {
 var a3 = a2.concat();
 a3.splice(0, j + 1);
 for(var k = 0, len3 = a3.length; k < len3; k++) {
  console.log(array[i] + ' ' +a2[j] + ' ' + a3[k]);
 }
 }
}
</script>

運(yùn)行結(jié)果:

需要取幾個(gè)數(shù)字,就嵌套循環(huán)幾次。

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

方山县| 泸西县| 莒南县| 牟定县| 广宗县| 察雅县| 白银市| 陕西省| 武安市| 双峰县| 涿州市| 昌邑市| 苗栗县| 荆州市| 合江县| 鹤庆县| 安新县| 甘泉县| 连平县| 承德县| 苗栗县| 綦江县| 三门峡市| 社会| 靖宇县| 微山县| 高邮市| 鄯善县| 河北省| 宜良县| 昌黎县| 顺平县| 嘉荫县| 鄂托克前旗| 温州市| 孟州市| 六安市| 武夷山市| 永宁县| 姜堰市| 泸水县|