如何生成总计为某个值K(例如20)的N个整数(例如365)?

时间:2018-10-02 16:00:12

标签: python python-3.x random

很抱歉成为新手。但是我无法弄清楚如何生成n个整数(也可能为0)可以求和一些整数K。 我用Python无法解决这个问题。

编辑:我希望每个值的值也限制为某个数字(例如4)。

1 个答案:

答案 0 :(得分:0)

使用random.randint以及如果sum(l) + r > 20可以重绘新随机数的条件,则您可以用 20 之和填充 365 / p>

import random

l = []
k = 20
n = 365

for i in range(n):
    if sum(l) > 20:
         l.append(0)
    else:
        r = random.randint(0,2)
        while sum(l) + r > k:
            r = random.randint(0,2)
        l.append(r)

注意

为了进一步随机化 list ,我会在之后另外 shuffle

random.shuffle(l)

print(sum(l))  # -> 20
print(len(l))  # -> 365