【发布时间】:2017-11-05 04:39:50
【问题描述】:
我正在尝试使用数字子集的倍数来计算已知总和或与该总和最接近的值。在这种方法中,我想最小化倍数或系数。
例如,如果我有号码 120 并且我有一组 50s 和 20s,我会得到 p>
120 = 2*50 + 1*20.
但是数字的集合是有限的,所以如果我只有1x50和6x20s,我会得到
120 = 6*20.
此外,如果我只有5x20s,因为我想最小化系数,我会拥有
110 = 1*50 + 3*20.
请注意,在这种情况下,该值是最接近总和的值。如果总和可以达到,则优先于具有最接近总和且倍数较少的值。
是否有已知的算法来实现这个结果?
【问题讨论】:
-
你读过生成函数吗?
标签: algorithm