我这里有一个场景。让我通过小例子来解释。
我有 10 支笔,我必须分给 3 个人。这些人的比例是 6:6:1 意味着如果我给 C 1 支笔,我必须给 A 和 B 6-6 支笔。
我尝试使用下面描述的简单计算来解决它。
PerPersonPen = (TotalCountofPens * PerPersonRatio)/(SumofAllPersonsRatio)
Person A =(Int) (10*6)/13 = 4
Person B = (Int) (10*6)/13 = 4
Person C = (Int) (10*1)/13 = 0
在这里,C 将获得 0 笔,但这不应该发生。我希望 A 和 B 能得到 4 支笔,这是对的。但是 C 也应该得到 1 支笔,剩下的。
如果任何人与其他人相比有 1 个比率计数,就会发生这种情况。
谁能帮我解决这个问题?或者我怎样才能实现它?
最佳答案
一个简单的方法是统计每个人应该得到多少支笔。然后,只要有笔可以发,你就给应该得到最多笔的人一支。
这是您的示例的工作:
60/13, 60/13, 10/13 -> 1, 0, 0
47/13, 60/13, 10/13 -> 1, 1, 0
47/13, 47/13, 10/13 -> 2, 1, 0
34/13, 47/13, 10/13 -> 2, 2, 0
34/13, 34/13, 10/13 -> 3, 2, 0
21/13, 34/13, 10/13 -> 3, 3, 0
21/13, 21/13, 10/13 -> 4, 3, 0
8/13, 21/13, 10/13 -> 4, 4, 0
8/13, 8/13, 10/13 -> 4, 4, 1
8/13, 8/13, -3/13 -> 5, 4, 1
关于python - 按照定义的比率赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43134511/