2015-12-01 92 views
3

因此,我正在開發一個項目,其中包含15個布爾變量(具有相關的「成本」和其他屬性)。JavaScript排列(布爾變量)

我想遍歷這15個布爾變量(例如全0,全1等)的每個排列,因此我可以執行進一步的分析。

我的結果可能是所有2^15 = 32k排列的數組(這很好)。讓每個元素都是一個字符串可能沒問題。

我試過尋找解決方案(像這樣:Permutations in JavaScript?),但那些不是我正在尋找的。

非常喜歡JavaScript解決方案,儘管我知道在Python中使用類似itertools的東西可以執行類似的操作。正如我最初試圖破解一些東西一樣,我試圖想到一個遞歸解決方案(節拍有15個for-loops),但我可以使用一些幫助。

非常感謝!

+2

你不是尋找 「排列」。如果你想要所有可能的組合,你需要你的選項的功率集。 – Bergi

+0

你似乎想要一個自己15次的[真,假]笛卡爾積。參見[JavaScript中多個數組的笛卡爾乘積](http://stackoverflow.com/q/12303989/1529630) – Oriol

回答

0

我寫了一個小庫,可以做到這一點。它使用ES2015發電機。

https://github.com/acarl005/generatorics

const G = require('generatorics') 

const states = G.baseN([ true, false ], 15) 

// get the next iteration with .next() and so on... 
console.log(states.next().value) 
console.log(states.next().value) 
console.log(states.next().value) 

// or use a loop 
for (let state of states) { 
    console.log(state) 
}