子集和概率。 (同余变化)

时间:2017-08-21 10:23:24

标签: algorithm complexity-theory number-theory np-complete subset-sum

我想知道Subset-sub问题变体的NP完全性:

子集和问题: 给定一组整数和一个整数s,是否有任何非空子集加到s?

已知此问题出现在NP中并且是NP完全的。现在考虑变化:

子集和问题(同余变化): 给定两个整数s和m以及一组以m为模的整数,是否有任何非空子集求和为s mod?

(即,集合中的所有数字都是模m,预期的和s也是mod m)。

我想知道此问题之前是否已经过研究过? (想知道它是否是NP完全的)。有没有人知道子集和问题是否存在任何纸张或类似变化?谢谢!

1 个答案:

答案 0 :(得分:2)

是的,这个问题也是NP完全的。由于正常子集和是NP完全的,因此将一些其他NP完全问题减少到子集和。

如果您可以另外生成具有输入大小为多项式的大小的足够大的模数,则相同的减少也将用于证明模块化子集和是NP完全的。模数只需要大于子集和解中使用的最大数,然后子集和与模块子集之和之间的差异就无关紧要了。

对于我能想到的任何减少,很容易产生这样的模数。请记住,只有模数的 size 必须是输入大小的多项式,因此,比方说100 ^(N ^ 2)工作正常 - 它只有2 *( N ^ 2)数字长。