所有可能的元素组合

时间:2009-09-24 13:03:45

标签: combinations

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

示例:

元素:1,2,3。

输出:

1
2
3
12
13
23
123

1 个答案:

答案 0 :(得分: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并查看二进制表示以了解要包含的元素。如果你想按照元素的数量对它们进行排序,可以对它们进行排序或按顺序生成数字(SO上有几个例子)。