加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 22:38:49 所属栏目:Python 来源:网络整理
导读:我这里有一个场景.让我用一个小例子来解释. 我有10支钢笔,我必须给3个人.那些人的比例就像是6:6:1意味着如果我给人C给1笔,我必须给A人和B人6-6笔. 我试图通过使用我在下面描述的简单计算来解决它. PerPersonPen = (TotalCountofPens * PerPersonRatio)/(Su

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读