Gha*_*iya 6 c python algorithm math
我这里有一个场景.让我用一个小例子来解释.
我有10支钢笔,我必须给3个人.那些人的比例是6:6:1意味着如果我给1个人CI,必须给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
Run Code Online (Sandbox Code Playgroud)
在这里,人物C将获得0笔,但不应该发生.我希望人A和B得到4笔,这是正确的.但是人C也应该得到1支笔.
这种情况发生在任何人与其他人相比有1个比率计数的情况下.
任何人都可以帮我解决这个问题吗?或者我怎样才能实现它?
小智 4
一个简单的方法是统计每个人应该得到多少支钢笔。然后,只要是要分发的笔,你就给应该得到最多笔的人一支。
这是您的示例的工作原理:
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