下面是一个从二项分布中抽取随机数的示例,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::math::binomial
对象计算PDF,CDF和其他对象,但他们不是在谈论随机数采样。
我应该根据 CDF 自己编写一个二叉搜索,boost::math::binomial
将为我计算还是可以直接提升返回随机数?
感谢@Bob__的这个链接,这里有一个简单的工作示例
#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__评论(。