combinations - 所有可能的元素组合

标签 combinations

我想知道一种可能的算法来计算所有可能的组合,没有重复,从 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/

相关文章:

php - 如何使用不同的数据库条目达到特定值(整数)?

java - 生成字符串所有组合的算法

java - 给定 n 个字节的数据,计算不同位数组的可能性

python - 如何获得两个不同列表的所有可能组合?

r - 列出数据框中没有观察值的所有因素(相互作用)组合,直到给定维度,删除冗余

javascript - 阶乘/组合在不应该的情况下产生 NaN

C++ STL 下一个排列与组合

python - 遍历 4 个数字的组合

php - 具有互斥性的二维数组的所有组合

python - 无需替换即可获得所有排列?