子集和問題

子集和問題  ， 又稱子集合加總問題 ， 是計算複雜度理論和密碼學中一個很重要的問題 。 問題可以描述爲 ： 給一個整數集合 ， 問是否存在某個非空子集 ， 使得子集內中的數字和爲某個特定數值 。 例 ： 給定集合 { −7, −3, −2, 5, 8 } ， 是否存在子集和爲0的集合?答案是YES ， 因爲子集 { −3, −2, 5 } 的數字和是0 。 這個問題是NP完全問題 ， 且或許是最容易描述的NP完全問題 。 一個等價的問題是 ： 給一個整數集合和另一個整數s ， 問是否存在某個非空子集 ， 使得子集中的數字和爲s 。 子集合加總問題可以想成是揹包問題的一個特例 。