如果我想从均匀分布中取样并获得double值,我觉得我可以在java中同时使用Random.nextDouble()或Random.nextGaussian()。有人可以向我解释一下差异吗。
答案 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开始的进一步的负面/正面,获得该数字的概率越低。