当前位置:  开发笔记 > 编程语言 > 正文

Random.nextGaussian()的问题

如何解决《Random.nextGaussian()的问题》经验,为你挑选了3个好方法。

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



1> dirkgently..:

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

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

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

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


当然,除了忽略这些数字意味着你的随机值不再是正常的,是吗?
@Jon Skeet:我理解我的建议的含义.我只是说S. Lott的观察是正确的,OP的问题是矛盾的.Mais,c'est la vie.

2> Ned Batcheld..:

正态分布是否包含与平均值相差很远的数字,但概率越来越小?可能是您的愿望(正常且限于特定范围)不相容.



3> Jon Skeet..:

正态分布给出非零(但"变得非常小")的概率,看到[-1,+ 1]之外的值,无论你给出什么方差 - 你只是有效地压扁曲线.

你可以使用一个小的方差,然后通过一个地图运行结果,该地图裁剪任何小于-1到-1的东西,以及任何大于1比1的东西,但它(严格来说)不再是正态分布.

出于兴趣,你需要这个发行版?


BHARATH,如果您的统计程序需要正态分布,为什么您不想使用正态分布,即为什么不想让它具有自然范围?
推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有