2009-09-24 120 views
4

我想知道一個可能的算法來計算所有可能的組合,無需重複,從長度= 1開始,直到長度= N個元素。元素的所有可能組合

實施例:

元素:1,2,3

輸出:

 
1 
2 
3 
12 
13 
23 
123 
+1

這聽起來像你想要的功率設置...見http://en.wikipedia.org/wiki/Power_set – 2009-09-24 13:13:34

+0

所有的組合與訂購無關嗎? – 2009-09-24 13:13:56

回答

10

看數字0至2^N的二進制呈現 - 1.

n = 3 

i Binary Combination 

    CBA 

0 000 
1 001  A 
2 010  B 
3 011  A B 
4 100   C 
5 101  A C 
6 110  B C 
7 111  A B C 

所以,你只需要枚舉數字1到2^n - 1,然後看看二進制表示法,以知道哪個ele包括。如果你想讓它們按排序後的元素數排序或按順序生成數字(SO上有幾個例子)。

+0

謝謝!這麼簡單...我根本沒有想到它。 再次感謝 – Dario 2009-09-24 13:22:52