大型阵列大小的 Powerset [重复]
Posted
技术标签:
【中文标题】大型阵列大小的 Powerset [重复]【英文标题】:Powerset for large array size [duplicate] 【发布时间】:2014-12-06 20:31:32 【问题描述】:我想找到一个大型数组(最多 1500 个)的幂集的所有子集的总和。我进行了搜索,但找不到有效的算法。
例子:
array=[1,2,3]
答案:
-> 0,1 -> 1,2 -> 2,3 -> 3,1,2 -> 3,1,3 -> 4,2,3 -> 5,1,2,3 -> 6
有没有有效的方法?
【问题讨论】:
C++,我在标题中提到 那你为什么用C++ 和 C来标记这个问题? 看看这个***.com/questions/728972/…,IMO 你的问题有点重复 【参考方案1】:具有 n 个元素的数组有 2^n 个子集。
每个元素将出现在其中的一半中。
因此所有子集的总和将是所有元素的总和乘以 2n-1。
【讨论】:
我想像例子一样分别找到每个子集的总和.. @kvnt1102 这些子集将有 2^1500 个,你真的需要它们吗? 求模m为k的子集个数有问题 @kvnt1102 尝试使用动态编程解决该问题,其中 DP[i][k] 给出数组的前 i 个元素的子集数,其总和等于 k 模 m。跨度>以上是关于大型阵列大小的 Powerset [重复]的主要内容,如果未能解决你的问题,请参考以下文章