溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用JavaScript怎么實現(xiàn)一個排列組合算法

發(fā)布時間:2021-04-06 17:46:17 來源:億速云 閱讀:471 作者:Leah 欄目:web開發(fā)

今天就跟大家聊聊有關(guān)使用JavaScript怎么實現(xiàn)一個排列組合算法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

具體如下:

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

比如:從4個數(shù)字中,任意選擇兩個的情況。從5個數(shù)字中任意選擇3個數(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 四個數(shù)字,從這四個數(shù)字中,任意選擇兩個數(shù)字一共有多少種情況:[1,2], [1,3], [1,4], [2,3], [2,4], [3,4]一共有這六種情況。

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

<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ù)
 比如:第一次的時候,i[0] = 1, 這個時候2層循環(huán), 只循環(huán) 2~5, 
 第二次的時候, i[1] = 2, 這個時候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>

運行結(jié)果:

使用JavaScript怎么實現(xiàn)一個排列組合算法

看完上述內(nèi)容,你們對使用JavaScript怎么實現(xiàn)一個排列組合算法有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI