生成一个随机数的数组,总和为常数

时间:2013-10-10 15:23:44

标签: python random-sample

我正在使用Dirichlet分布来生成一个随机数的数组,总和为1.然而,我实际上认为我需要这些数字总和为任意常数。

import numpy as np
d = np.random.dirichlet(np.ones(10), size=1)

我很困惑一个很好的方法来修改这个,所以总和是,比方说10.大概:

10*d

不是一个很好的方法。

1 个答案:

答案 0 :(得分:2)

我认为N*d是修改随机数总和为N=10的合法方式。 Dirichlet random numbers are samples from a Gamma generator that are normalized to sum to 1(另见Wikipedia)。由于您希望它们总和为N而不是1,因此将每个Dirichlet随机数乘以N是完全合法的。