python – 根据定义的比率分配值

前端之家收集整理的这篇文章主要介绍了python – 根据定义的比率分配值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我这里有一个场景.让我用一个小例子来解释.

我有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

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,8/13,10/13 -> 4,4,1

8/13,-3/13 -> 5,1

更新
如果你想确保每个人在可能的情况下至少收到一支笔,那么首先给每个人一支笔,优先考虑那些需要最多笔的笔,以防每个人都没有足够的笔.然后按上述步骤操作.

猜你在找的Python相关文章