我以前做过这个,但现在我又在挣扎了,我想我不理解这个问题背后的数学原理。
我想在两边的一个小范围内设置一个随机数1
。例子是.98
, 1.02
, .94
, 1.1
等等。我发现的所有示例都描述了在之间获取随机数0
and 100
,但是我怎样才能用它来达到我想要的范围呢?
尽管我使用的是纯数据,但编程语言在这里并不重要。有人可以解释一下所涉及的数学吗?
Uniform
如果您想要 0.9 和 1.1 之间的(伪)均匀分布(均匀分布),则以下内容将起作用:
range = 0.2
return 1-range/2+rand(100)*range/100
相应地调整范围。
伪正常
如果您想要正态分布(钟形曲线),您将需要特殊的代码,这将是特定于语言/库的。您可以使用以下代码获得近似值:
sd = 0.1
mean = 1
count = 10
sum = 0
for(int i=1; i<count; i++)
sum=sum+(rand(100)-50)
}
normal = sum / count
normal = normal*sd + mean
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)