很多時候,你有一個問題,屬性A可以是真或假,屬性B也可以是真或假,等等。我們想要測試A的每個組合都是正確的,而B是錯誤的,等等。因此,例如,我們可能需要以下列表:在C++中生成組合列表的最簡單方法是什麼?
[true,true,true]
[true,true,false]
[true,false,true]
[true,false,false]
[false,true,true]
[false,true,false]
[false,false,true]
[false,false,false]
在Haskell或Python,這可以通過列表的產品功能來完成。
我的問題是,什麼是產生這種最簡單的和/或最快的方法?我一直都是通過將數字轉換爲二進制來完成的,然後將二進制數據轉換爲數組。但是這看起來很麻煩,因爲十進制到二進制轉換並不是完全無關緊要的,我們還需要擔心用前導零填充二進制以正確填充數組。
我已經實現和重新實現這種功能在不同環境下足夠的時間來想,有沒有辦法很簡單,你可以從頭開始實現它在必要的時候 - 沒有真正不必考慮?
更好,謝謝@Loki – 2012-03-07 01:14:59
不需要位移! – vvnraman 2012-03-07 13:26:48
@mwraman,你是對的。這些轉變來自於我在返回0和1時的原始實施。 – 2012-03-07 17:31:00