gpt4 book ai didi

python - 如何将一个整数拆分为不同变量中几乎相等的数量?

转载 作者:行者123 更新时间:2023-12-01 06:51:48 37 4
gpt4 key购买 nike

我想知道如何将任何给定的整数划分为任意给定数量的变量,同时确保变量中的值的总和不超过初始整数值。

例如,我想将 5 分为 3 个不同的变量,如果我执行以下操作:

var1 = 5 / 3
var2 = 5 / 3
var3 = 5 / 3

我会得到等于 1.67 的每个值(四舍五入到小数点后两位,因为它是货币)。但是,如果我要执行 1.67 * 3,则它等于大于 5。我希望变量 1 和 2 为 1.67,然后剩余变量的剩余值为 1.66。

这有意义吗?

最佳答案

这是一个可以解决您的问题的通用函数。它将value转换为cents并将其均匀分配到nr_variables中,剩余部分放入第一个变量中,直到全部用完。该函数返回一个值列表。

def f(nr_variables, value):

cents = value*100

base = cents//nr_variables
rem = int(cents%nr_variables)

return [(base+1)/100]*rem + [base/100]*(nr_variables-rem)

可以这样使用:

f(3,5)

并给出:

[1.67, 1.67, 1.66]

如果您想将列表分配给变量,就像您在问题中所做的那样,您可以这样做:

var1,var2,var3 = f(3,5)

关于python - 如何将一个整数拆分为不同变量中几乎相等的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58954891/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com