Random.nextgaussian()可以从具有不同均值和标准差的分布中采样值吗?

dar*_*ipo 19 java statistics gaussian random-sample

这是一个综合的Java和基本数学问题.来自Random.nextGaussian()的文档声明它从正态分布中采样,均值为0,标准差为1.如果我想从具有不同均值和方差的正态分布中进行采样,该怎么办?

dar*_*ipo 40

简短的回答是

Random r = new Random();
double mySample = r.nextGaussian()*desiredStandardDeviation+desiredMean;
Run Code Online (Sandbox Code Playgroud)

例如,这里给出了答案:http://www.javamex.com/tutorials/random_numbers/gaussian_distribution_2.shtml

我真的不明白为什么会这样有效,但在仔细研究之后我想我已经明白了.样本点的均值为0,标准差为1; 这意味着原始样本也是它自己的z分数(https://en.wikipedia.org/wiki/Standard_score).引用维基百科"z的绝对值表示原始分数与总体平均值之间的距离,以标准差为单位".公式为z =(x-mean)/ stdev,因此默认值为z = x.如果我们想保留样本的z分数但改变平均值和标准,我们会做什么?

z*stdev + mean = x'其中z = x,x'表示具有所需平均值和标准偏差的分布中的样本.

  • 你想要有人确认这是正确的吗?如果是这样,我可以确认它是. (4认同)
  • 谢谢pbabcdef!我发布它作为一般答案,以防有人谷歌这个问题. (3认同)