子集合加总问题研究

子集合加总问题可以简化为:

假设有一个整数集合[0,N],有一个负整数M,那么需要证明有一个集合x∩[0,N] == x的情况下,∑y (y 在x集合内) = |M|。

也就是x的子集和,与M的绝对值相等。

简单的算法,复杂度比较高。首先需要一个算法来提取[0,N]的子集。它的非空子集是2n-1个。该算法的时间复杂度也就是O(2n)。

因为算法的时候复杂度与N相关,所以该问题是一个NP问题,且是一个NPC问题。

 

该问题有两种特例

假设y∈[0,N] > |M|,那么就不存在这样的集合。
假设y∈[0,N] == |M|,那么一定存在

而且这种复杂度就会比较小,遍历N个的话,复杂度是O(n).这种特殊的情况,属于NP问题。

转载于:https://www.cnblogs.com/yurow/archive/2009/03/19/1416888.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值