c++ - 从 Boost 二项分布中抽取随机数
问题描述
这是一个从二项分布中提取随机数的示例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 和其他内容,但他们不是在谈论对随机数进行采样。
boost::math::binomial
我应该根据将为我计算的 CDF 自己编写二进制搜索 还是可以直接提升返回随机数?
解决方案
感谢@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__ 评论)。
推荐阅读
- django - 使用 django-auth-ldap 获取员工经理的经理
- flutter - 如何禁用android的后退按钮?
- git - 可以指示 git fetch pack 获取单个树对象吗?
- azure-cosmosdb - CosmosDB 中的 DATEADD 功能
- javascript - javascript recursion null TypeError 在不应执行的 while 循环体中
- javascript - 如何让私有方法在 TypeScript 中工作?
- html - 提高不断重绘网页区域的性能
- pandas - 无法在 seaborn.distplot 中使用 fit 方法
- javascript - 数组极端情况下的二分搜索
- postgresql - 当我尝试在 Postgres 中保存数据帧时,Pyspark EMR“连接尝试失败”