微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Random.nextGaussian()的问题

Random.nextGaussian()应该给出随机数no.s,其均值为0,std偏差为1.
它产生的许多nos超出了[-1,1]的范围.
如何设置,以便它只在-1到1的范围内给出正态分布的随机数.

解决方法

具有平均值0和标准差1的高斯分布意味着分布的平均值为0并且约70%的总体位于[-1,1]范围内.忽略超出范围的数字 – 它们在任何一侧形成约16%的边缘.

也许更好的解决方案是生成均值= 0和std.dev = 0.5的分布.这将为您提供大约96%的[-1,1]范围内的值的分布.

更好的解决方案是如上所述向后工作并使用大约的想法. 99.7%的值位于3-sigma范围内:使用std.dev = 1/3.这几乎会使您获得的不太有用的数量无效.当你得到一个,省略它.

当然,如果你正在研究数学密集型产品,那么所有这些都没有任何价值.

原文地址:https://www.jb51.cc/java/128707.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐