标题可能有点模棱两可。
有一个给定的数字。
有一组数字都小于给定的数字且大于零。
我想知道有多少个不同的加法组合等于给定的数字。
例如,如果给定的数字是14,而集合中的数字是7、7、7、6、4和4,则将有4个组合。(7+7、7+7、7+7、6+4+4)
我真的不关心解决方案是用什么语言编写的,但我更喜欢C++或Python。
发布于 2011-08-29 11:11:06
不要因为声称这是NP-complete而泄气。维基百科上关于@isbadawi链接的子集和的文章提到了David Pisinger教授1999年的一篇论文,其中有一种算法,听起来可以在线性时间内处理现有的约束:http://www.sciencedirect.com/science/article/pii/S0196677499910349。31.50美元,但如果你真的需要很好地解决这个问题,这听起来很划算。
https://stackoverflow.com/questions/7225645
复制相似问题