使用std :: binomial_distribution计算概率
Calculating probability using std::binomial_distribution
是否有可能使用std :: binomial_distribution计算在K试验中获得n个成功的概率?如何?
不是真的。
std::binomial_distribution
更像是随机数生成的适配器,而不是可以提供累积密度函数的东西。
您可以自己在几行代码中实现累积密度函数,也可以搜索良好的数学库。(使用Pascal的三角方法,而不是计算大阶乘数字)。
实现这样的PMF,例如二项式
PMF(p, n,k) = n!/(k!*(n-k)!) p^k (1-p)^(n-k)
好诀窍是计算它的对数及其指数
对于阶乘的log
,您必须使用伽马功能的日志
沿线(未测试!)
double logChoose(int n, int k) {
return std::lgamma(double(n+1)) - std::lgamma(double(k+1)) - std::lgamma(double(n-k+1));
}
double PMFBinomial(double p, int n, int k) {
double lgr = logChoose(n, k) + double(k)*std::log(p) + double(n-k)*std::log(1-p);
return std::exp(lgr);
}
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 关于骰子概率计算的一个C++问题
- 计算 UUID 是唯一的概率
- 视觉C++计算事件的概率
- 使用std :: binomial_distribution计算概率
- C++:计算每次迭代期间的概率百分比
- 如何计算字符串中字母的概率
- 计算概率C++伯努利试验
- 如何计算 CDF C++中正态分布概率
- 计算概率百分比
- 用邻接矩阵计算概率
- 如何用给定的数据计算概率
- 计算类似于二项和的条件概率