首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中生成随机采样。带整数的。给定sum和大小

如何在python中生成随机采样。带整数的。给定sum和大小
EN

Stack Overflow用户
提问于 2018-06-25 03:33:14
回答 2查看 78关注 0票数 -5

在python中有没有一个直接的函数或者任何其他的方法,我可以生成给定大小的随机整数,并且我想指定这些数字的和。

例如。我想生成7个数字,它们的和是341。

我还可以为它指定mean吗?比如7个数字,平均值是49,和是341。(可选)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-25 04:02:59

您可以使用random.gauss在具有一定标准差(接近)的mean周围生成6个数字,并根据@PatrickArtner的建议构建第7个数字,例如,使用3标准devs:

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2018-06-25 03:38:32

我发现这段代码可能会做得很好:

代码语言:javascript
复制
_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]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51013319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档