【问题标题】:Whats the difference between nextGaussian and nextDouble in java Random class?java Random类中的nextGaussian和nextDouble有什么区别?
【发布时间】:2016-01-23 07:56:49
【问题描述】:

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

【问题讨论】:

  • 这两种方法的 Javadoc 的哪一部分不清楚?它们返回不同的值范围。
  • 你肯定不能使用 nextGaussion 来获得均匀分布(至少不能直接)。
  • 其实我的朋友,nextDoublenextGaussian 都可以返回(理论上)any double 值。见stackoverflow.com/questions/43925566/…

标签: java random gaussian uniform


【解决方案1】:

根据nextDouble 的 Java API 文档:

从该随机数生成器的序列中返回下一个伪随机、均匀分布的双精度值,介于 0.0 和 1.0 之间。

对于nextGaussian

返回下一个伪随机,高斯(“正常”)分布 双值,平均值为 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 开始的负数/正数越多,返回该数字的概率就越低。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-10
  • 1970-01-01
  • 2013-09-14
  • 1970-01-01
  • 2022-11-09
  • 2014-11-12
  • 2019-05-24
相关资源
最近更新 更多