【问题标题】:Draw random numbers from Boost binomial distribution从 Boost 二项分布中抽取随机数
【发布时间】:2018-06-04 23:09:09
【问题描述】:

这是一个使用std::binomial_distribution从二项分布中抽取随机数的示例

#include <random>
int main ()
{
   std::mt19937 eng(14);
   std::binomial_distribution<size_t> dist(28,0.2);
   size_t randomNumber = dist(eng);

   return 0;
}

我找不到类似的 boost 示例。我浏览了this documentation,它解释了如何从boost::math::binomial 对象计算PDF、CDF 和其他内容,但他们不是在谈论对随机数进行采样。

我应该根据boost::math::binomial 将为我计算的CDF 自己编写一个二分搜索,还是可以直接boost 返回随机数?

【问题讨论】:

标签: c++ random boost binomial-cdf


【解决方案1】:

感谢@Bob__ 的this link,这是一个简单的工作示例

#include <random>
#include <boost/random.hpp>

int main ()
{
   std::mt19937 eng;
   boost::random::binomial_distribution<int> dist(28,0.2);
   int randomNumber = dist(eng);

   return 0;
}

由于某种原因,它不能用size_t 编译,所以我使用了int(有关更多信息,请参阅下面@Bob__ 的评论)。

【讨论】:

  • 嗯,在某处,在日志here 中,有一个“错误:重载'abs(long unsigned int)' 的调用不明确”,而ideone.com/Td4Rvl不抱怨...
猜你喜欢
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多