将数字拆分为四舍五入的数字
问题描述
是否有库可以将数字拆分为多个部分,但确保所有部分都是四舍五入的数字?
例如,将100拆分为3将是33.33
,但我希望对其进行四舍五入,并确保总和也保持为100:
[34 33 33]
解决方案
为此可以使用内置函数divmod
。由于此函数所做的一切都是简单的算术运算,因此我使用的是单字母变量名。
def parts(a, b):
q, r = divmod(a, b)
return [q + 1] * r + [q] * (b - r)
返回值是先包含较大部分的列表。
>>> parts(100, 3)
[34, 33, 33]
>>> parts(100, 7)
[15, 15, 14, 14, 14, 14, 14]
相关文章