加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Random.nextGaussian()的问题

发布时间:2020-12-15 03:04:26 所属栏目:Java 来源:网络整理
导读:Random.nextGaussian()应该给出随机数no.s,其均值为0,std偏差为1. 它产生的许多nos超出了[-1,1]的范围. 如何设置,以便它只在-1到1的范围内给出正态分布的随机数. 解决方法 具有平均值0和标准差1的高斯分布意味着分布的平均值为0并且约70%的总体位于[-1,1]范
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.这几乎会使您获得的不太有用的数量无效.当你得到一个,省略它.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读