我想知道一种可能的算法来计算所有可能的组合,没有重复,从 length=1 开始,直到 length=N 的 N 个元素。
例子:
元素:1、2、3。
输出:
1
2
3
12
13
23
123
最佳答案
看看数字 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 上有几个示例)。
关于combinations - 所有可能的元素组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1471558/