好的,这就是问题所在:
我需要从50-100项目集中找到任意数量的intem组,加起来为1000,2000,...,10000。
输入:整数列表
整数只能在一个列表中。
关于算法的任何想法?
答案 0 :(得分:5)
编辑:如果你想获得技术,你所描述的似乎真的是子集和问题 - 这是背包问题的一个特例。当然,这是假设我正确理解你的描述,我承认可能会对某些问题持开放态度。
您可能会在The Handbook of Applied Cryptography帮助中找到算法3.94。
答案 1 :(得分:2)
我不是100%根据你的要求,但我之前使用过回溯搜索这样的东西。这是一种蛮力算法,它是最慢的解决方案,但它可以工作。 Backtracking Search上的wiki文章可能会对您有所帮助。基本上,您可以使用递归算法来检查每个可能的组合。
答案 2 :(得分:1)
这是背包问题。您可以选择的整数是否有任何限制?他们可以分开吗?它们都低于某个给定值吗?在这种约束条件下,可能有多种方法可以在多项式时间内解决问题 - 谷歌将为您提供答案。