什么是java Random Class中nextGaussian和nextDouble之间的区别?

时间:2016-01-23 07:56:50

标签: java random gaussian uniform

如果我想从均匀分布中取样并获得double值,我觉得我可以在java中同时使用Random.nextDouble()或Random.nextGaussian()。有人可以向我解释一下差异吗。

1 个答案:

答案 0 :(得分:9)

根据nextDouble的Java API文档:

  

从该随机数生成器的序列中返回下一个伪随机数,均匀分布在0.0和1.0之间的double值。

nextGaussian

  

返回下一个伪随机数,Gaussian("通常")分布   双值,平均值为0.0,标准偏差为1.0   数字生成器的序列。

这与返回某些值的概率有关。对于均匀分布,返回0.0到1.0之间的每个值的概率相等。换句话说,获得0.0的概率与获得0.5或0.7等的概率相同。

对于正态分布,返回值的概率将根据normal distribution curve。得到0.0(平均值)的几率远远大于得到-1.0或1.0,这是与平均值相差1.0的标准偏差。从0.0开始的进一步的负面/正面,获得该数字的概率越低。