1

我有一个 amount $9558.99,我需要分配给 4 个人: 40%, 40%, 10%, 10% 。(这只是问题出现的一个例子)

当我计算分数时,我得到以下结果,它们都包含一分钱的分数,这不好,因为显然我不能给一个人半分钱。

40%  $3823.5960
40%  $3823.5960
10%  $955.8990
10%  $955.8990
SUM  $9558.99

如果我四舍五入,我会得到一分钱:

40%  $3823.60
40%  $3823.60
10%  $955.90
10%  $955.90
SUM  $9559.00 <-- 1 penny over

如果我四舍五入,我会少得到 3 便士(同样没有惊喜):

40%  $3823.59
40%  $3823.59
10%  $955.89
10%  $955.89
SUM  $9558.96 <-- 3 pennies under

所以我的问题是,根据百分比公平分配金额的正确方法是什么?

编辑:这本身可能不是一个编程问题,但我认为它无论如何都与程序员有关。

4

2 回答 2

3

四舍五入,并随机减去多余的一分钱。

要随机减去,请选择n随机人,其中n= 剩余便士的数量。

直观地说,我相信在这种情况下 n 不会大于 3。

(或者,向下舍入并随机分配剩余的便士)。

于 2012-04-13T10:15:22.690 回答
1

无论您使用哪种舍入方法,都会有人失败。

这是一个替代建议

A 人获得总数的 40% - 四舍五入到最接近的一分钱。
B 人得到剩下的 40/60 - 四舍五入到最接近的便士。
人 C 得到剩下的 10/20 - 四舍五入到最接近的便士。
D 人得到了剩下的东西。

A 获得 3823.60 美元
B 获得 3828.59 美元
C 获得 955.90 美元
D 获得 955.90 美元

于 2012-04-13T10:37:39.570 回答