java随机class中的nextGaussian和nextDouble有什么区别?

Whats the difference between nextGaussian and nextDouble in java Random class?

如果我想从均匀分布中采样并获得双精度值,我觉得我可以在 java 中同时使用 Random.nextDouble() 或 Random.nextGaussian()。谁能给我解释一下区别。

根据 Java API 文档 nextDouble

Returns the next pseudorandom, uniformly distributed double value between 0.0 and 1.0 from this random number generator's sequence.

nextGaussian:

Returns the next pseudorandom, Gaussian ("normally") distributed double value with mean 0.0 and standard deviation 1.0 from this random number generator's sequence.

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

对于正态分布,返回值的概率将根据 normal distribution curve。获得 0.0(均值)的机会基本上远大于获得 -1.0 或 1.0,这是与均值相差 1.0 的标准差。 negative/positive 距离 0.0 越远,返回该数字的概率就越低。