【发布时间】:2019-12-03 01:30:15
【问题描述】:
我想列出 N 个随机 INTEGER 数,其总和等于 M 个数。
我在 Python 中使用过 numpy 和 dirichlet 函数,但是这会生成双随机数数组,我想生成整数随机数。
import numpy as np
np.random.dirichlet(np.ones(n))*m
解决方案可以使用其他分布,感觉就是解决问题。
【问题讨论】:
-
整数有分布吗?
-
我撤回了我的评论,因为我看到你乘以
m,所以你确实得到了可以截断的东西,但事实仍然是 Dirichlet根据定义,是实数的分布。二项式和泊松是两种常见的离散分布,但不具备您想要的求和属性。 -
哦——check this out。看起来多项式是要走的路。分布与 Dirichlet 不同,但数字会相加,如果截断 Dirichlet,则无法保证。
-
非常感谢它解决了我的问题。我已经编辑了问题,以便您可以回答我的问题。
-
不用担心。我真的不在乎接受这个,我也最感兴趣的是找到答案。写了一个答案,只是因为我有信息弹跳。
标签: javascript python numpy dirichlet