所有元素的可能组合

5

我想知道一个可能的算法来计算所有可能的组合,不重复,从长度=1开始,直到N个元素的长度=N。

例子:

元素: 1, 2, 3.

输出:

1
2
3
12
13
23
123

1
听起来你想要幂集...请参考http://en.wikipedia.org/wiki/Power_set - Thomas Owens
所有组合是否与顺序无关? - Jonathan Branam
1个回答

12

看一下数字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的数字,并查看其二进制表示,就能知道要包含哪些元素。如果你想按元素数量对它们进行排序,请对其进行排序或按顺序生成这些数字(在SO上有几个示例)。


谢谢!太简单了……我完全没想到。再次感谢。 - Dario

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接