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.这几乎会使您获得的不太有用的数量无效.当你得到一个,省略它.

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

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...