Random.nextGaussian()问题

问题描述

高斯分布的平均值为0,标准差为1,表示该分布的平均值为0,大约70%的总体位于[-1,1]范围内。忽略超出范围的数字-它们在两侧形成约16%的条纹。

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

更好的解决方案是像上面那样向后工作,并使用大约 99.7%的值位于3-sigma范围内:使用std.dev = 1/3。这几乎将使您获得的不太有用的值数量无效。当您得到一个时,请忽略它。

当然,如果您正在开发数学密集型产品,那么所有这些都将毫无价值。

解决方法

应该假定Random.nextGaussian()给出均值为0和std偏差为1的随机编号。它生成的许多编号不在[-1,+
1]范围内。我该如何设置,使其仅在-1到1的范围内给出正态分布的随机数。

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”