Python 选择数组中的某些(或无)元素并将它们相加以获得预期的和

Python 选择数组中的某些(或无)元素并将它们相加以获得预期的和,python,Python,我有一个简单的问题,如果手动完成,但我想动态地做这件事 考虑一个静态数组a=[3 2 0 7-1] 预期总和S=8 因此,从上面的数组中,我可以手动选择元素2,7,-1,得到Sum=2+7+(-1)=8 若我从用户那个里得到任意大小的数组,同时也从用户那个里得到期望的_和,那个么有人能解释一下我如何动态地做到这一点吗 提前感谢您应该使用它。这是著名的子集和问题,可以使用动态规划解决。您可能会发现这一点很有用:@aradhak感谢您提供的链接,我将尝试使用pythonIt解决此问题。您最近做了很多

我有一个简单的问题,如果手动完成,但我想动态地做这件事

考虑一个静态数组a=[3 2 0 7-1]

预期总和S=8

因此,从上面的数组中,我可以手动选择元素2,7,-1,得到Sum=2+7+(-1)=8

若我从用户那个里得到任意大小的数组,同时也从用户那个里得到期望的_和,那个么有人能解释一下我如何动态地做到这一点吗


提前感谢

您应该使用它。这是著名的
子集和问题
,可以使用
动态规划
解决。您可能会发现这一点很有用:@aradhak感谢您提供的链接,我将尝试使用pythonIt解决此问题。您最近做了很多事情,可以从动态编程技术中获益。:)FWIW,我有134个解决方案。我通过将问题表示为一个问题找到了它们,我使用Knuth的方法解决了这个问题。你应该使用它。这是著名的
子集和问题
,可以使用
动态规划
解决。您可能会发现这一点很有用:@aradhak感谢您提供的链接,我将尝试使用pythonIt解决此问题。您最近做了很多事情,可以从动态编程技术中获益。:)FWIW,我有134个解决方案。我通过将问题表示为一个问题来发现它们,我用Knuth的方法解决了这个问题。
static code :

a = [3,2,0,7,-1]
exp_sum = 8

# manually choosing elements to get exp_sum
req_sum = exp_sum[1] + exp_sum[3] + exp_sum[4]   
if exp_sum == req_sum:
    print "Yes"
else:
    print "No"