【发布时间】:2011-01-11 09:08:05
【问题描述】:
给定一个大小为n 的数组,我想为每个索引生成随机概率,使得Sigma(a[0]..a[n-1])=1
一个可能的结果可能是:
0 1 2 3 4
0.15 0.2 0.18 0.22 0.25
另一个完全合法的结果可能是:
0 1 2 3 4
0.01 0.01 0.96 0.01 0.01
如何轻松快速地生成这些?任何语言的答案都可以,Java 优先。
【问题讨论】:
-
西格玛是指标准差吗?我希望你意识到,一旦你说标准偏差,你就自动暗示你是从正态分布中抽取随机数。
-
大多数计算机 RNG 的抽奖号码来自均匀分布。
-
您可以通过意识到中心极限定理可以提供帮助来绕过这个问题:en.wikipedia.org/wiki/Central_limit_theorem
-
即你想要从你的正态分布中抽取 1 个数字是从 RNG 均匀分布中抽取 N 个数字并取它们的平均值以产生一个随机的“正态”值,其中 N 足够大以满足您的需求(最好是 N > 1这就是你现在正在做的事情。)
-
@gmatt:不,他的意思是“总和”,看看他的例子
标签: java math random probability