这是一个使用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;
}

我没有找到类似的提振例子。我经历了this documentation,它解释了如何从boost::math::binomial对象计算PDF,CDF和其他文件,但是他们没有谈论对随机数进行采样。

我是否应该根据boost::math::binomial将为我计算的CDF自己编写二进制搜索,还是可以直接提升随机数?

最佳答案

感谢@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__的注释)。

关于c++ - 从Boost二项式分布中抽取随机数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50689949/

10-11 22:38
查看更多