STD具有许多分布,显然可以用于生成伪随机变量,请参见例如。下面的代码生成并输出一些负二项式分布数。
现在,此 might 意味着在内部,有代码计算负二项式分布的CDF和/或PDF,即随机变量具有某个值(例如, 6.有没有办法输出这种可能性?如果是,怎么办?我知道我可以为此运行我自己的代码,但是如果有某种方法可以从std获取概率,我宁愿不这样做。
如果可能,请问其他发行版的相同问题,例如伽玛分布的CDF。
int main()
{
std::negative_binomial_distribution<int> negBin{ 5,0.5 };//Negative binomial distribution
std::mt19937 RNG(260783);//Random generator
for (size_t i = 0; i < 4; i++)
{
std::cout << negBin(RNG) << std::endl;
}
return 0;
}
答案 0 :(得分:1)
该标准未指定实现应如何实现分布,只是从该采样中应从生成器中获取摊余常数样本。
None of the members提供CDF或PDF
答案 1 :(得分:0)
可能意味着在内部,有代码计算负二项式分布的CDF和/或PDF,即随机变量具有某个值(例如, 6.有没有办法输出这种可能性?
通常,不,采样不需要了解PDF和/或CDF,请参见f.e. Marsaglia方法对正态分布的RV进行采样。
我可以建议看一下GNU科学图书馆,该图书馆提供了抽样方法以及负二项式的PDF和CDF: https://www.gnu.org/software/gsl/manual/html_node/The-Negative-Binomial-Distribution.html