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

假设有一个整数集合[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问题。

相关文章:

  • 2021-09-05
  • 2022-01-24
  • 2021-07-26
  • 2022-01-16
  • 2021-10-16
  • 2022-12-23
  • 2021-10-20
  • 2022-12-23
猜你喜欢
  • 2021-12-19
  • 2021-12-04
  • 2022-12-23
  • 2022-03-02
  • 2021-07-17
  • 2021-04-05
  • 2022-12-23
相关资源
相似解决方案