如何在python中生成随机采样。与整数。给出总和和大小

时间:2018-06-24 19:33:14

标签: python numpy random

在python中是否有直接函数或任何其他方式,我可以为给定大小生成随机整数,我也想指定这些数字的总和。

例如。 我想生成7个总数为341的数字。

我是否也可以指定均值。像7个数字,均值49和总和341。(可选)

2 个答案:

答案 0 :(得分:0)

我发现这段代码可能会做得不错:

_sum = 341
n = 7
Argentina = np.random.multinomial(_sum, np.ones(n)/n, size=1)[0]
print (Argentina)
[44 46 42 52 53 50 54]

答案 1 :(得分:0)

您可以使用random.gaussmean周围生成具有一定标准偏差(接近度)的6个数字,并按照@PatrickArtner建议构造第7个数字,例如从均值中使用3个标准开发者:

In []:
import random
vals = [int(random.gauss(341/7, 3)) for _ in range(6)]
vals.append(341 - sum(vals))
vals, sum(vals), sum(vals)/7

Out[]:
([47, 47, 48, 48, 54, 50, 47], 341, 48.714285714285715)