C++ 中的伽玛分布随机变量
在 C++ 中获得伽马分布随机变量的最简单方法是什么? Boost似乎有这个功能,但我不清楚如何使用它。
What is the easiest way to get a gamma distributed random variable in C++? Boost seems to have this functionality, but it is not clear for me how to use it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这非常简单:
构造一个随机数生成器和一个 gamma 分布 和将它们粘合在一起形成可用的生成器。现在您可以通过调用
生成器
来创建随机数。It’s pretty straightforward:
Constructs a random number generator and a gamma distribution and glues them together into a usable generator. Now you can create random numbers by invoking the
generator
.以下是在 C++11 中执行此操作的方法:
您的编译器可能支持也可能不支持
。 Boost random 最近刚刚被修改为符合 std::syntax,但我不确定该修改是否实际上已经发布(或者仍然只是在 boost trunk 上)。Here is how you do it in C++11:
Your compiler may or may not yet support
<random>
. Boost random has just recently been modified to conform to the std::syntax, but I'm not sure if that modification has actually been released yet (or is still just on the boost trunk).看起来Boost中的Gamma Distribution有一些代码可以做你想要的事情。您可能缺少的一点是
boost::variate_generator
。Looks like Gamma Distribution in Boost has some code that will do what you want. The bit you're probably missing is
boost::variate_generator
.