![]() |
1
1
您所称的“唯一子集生成”更好地称为 integer partitions with distinct parts .Mathworld有一个条目 the Q function ,它统计具有不同部分的分区数。
然而
也就是说,您的函数不计算普通分区(即。
以下是参考算法的组合解释:
让我们从一个包含
假设我们要构造一个包含
包括的所有子集
但是我们实际上不需要存储实际的子集/分区,我们只需要每个索引/和的计数。例如,如果使用表
考虑到这一点,下面是这个过程的Python实现:
我们从桌子开始
现在,我们可以对代码进行两个主要优化:
通过这些优化,您可以有效地从
the Mathematics answer
前面提到过,这是由生成函数驱动的。它运行在
|
|
Justin Haddock · 动态规划Python路径算法 7 年前 |
|
Pal Jereh · 形成字符串的最小路径 7 年前 |
|
Reddy90 · 计算二进制表示形式正好需要数字1的数字 7 年前 |
![]() |
daniel · java—如何避免将全局外部变量作为递归函数的输出 7 年前 |
![]() |
ng.newbie · TopCoder中的示例违反了约束 7 年前 |
![]() |
Mohamed Benkedadra · 数组中每个元素的递归 7 年前 |