比例分布算法

时间:2018-05-12 21:30:56

标签: algorithm

让我们说有n个箱子,作为现金的容器

每个bin必须包含相同面额的注释$100$20$5$1

然后现在定义了总金额,比如$27,869

每个垃圾箱可以拆分所需的比例MUST BE,比如说

`30%` for `$100`, 
`40%` for `$20`, 
`20%` for `$5`, 
`10%` for `$1`,

所以所有4个分档构成了最接近所需金额的最终金额的整个(100%

最后算法必须返回最接近的优化量,也就是说 $26,982

我正在考虑使用递归函数,从最大面额到最小面额,但我不知道如何解决比例,请赐教。任何Java / C或伪代码都表示赞赏。

1 个答案:

答案 0 :(得分:0)

如果您的百分比需要精确,那么您可以使用的组合数量非常有限。

例如,在你的例子中,你总是会得到3美元钞票的3倍。

一般情况下,我会发现具有最低百分比的面额,从1个账单开始,确定您需要多少其他账单,直到超过总价值。

对于每个其他面额,您可以确定账单的数量:

bills100 = Math.round(bills1 * percent100/percent1)

请注意,一般情况下,您的百分比不准确,但它们会尽可能接近。不,我不会为你编写代码。

相关问题