【发布时间】:2012-11-29 20:28:16
【问题描述】:
我需要使用 beta 分布 Beta(a, b) 来生成一个从 0 到 1 的随机数。
我找到了 BetaDist 类,它具有构造函数 BetaDist(double alpha, double beta),该构造函数使用参数 α = alpha 和 β = beta 以及默认域 (0, 1) 构造一个 BetaDist 对象。
但是,我找不到可以仅使用 alpha 和 beta 来使用 BetaDist 对象返回随机绘制 x (0, 1) 的方法。
我在 stackoverflow 上阅读了另一篇文章说: 从具有没有跳跃的 cdf 的任意分布生成随机数的一般方法是使用 cdf 的反函数:G(y)=F^{-1}(y)。如果 u(1), ..., u(n) 是均匀分布在 (0,1) 上的随机数,则 G(u(1)), ..., G(u(n)) 是随机数来自具有 cdf F(x) 的分布的样本。
BetaDist 类确实有 cdf(double x) 方法,但我仍然不知道下一步该做什么。我没学过统计学,上面的帖子对我来说还是太复杂了。
非常感谢。
【问题讨论】:
-
“我在 stackoverflow 上阅读了另一篇文章”-> 哪个文章?
-
BetaDist是iro.umontreal.ca/~simardr/ssj/doc/html/umontreal/iro/lecuyer/… 的那个班级吗? -
是的,就是这个类。帖子的链接是stackoverflow.com/questions/4181403/…