您的位置:首页 > 编程语言 > C语言/C++

C++生成随机数:负二项分布/帕斯卡分布(negative binomial distribution)

2012-07-15 21:01 281 查看
 

long cls_random::randomNegativeBinomial(
double    r,
double  probability)
{
long rnd = 0;
double fr = 0.0;
while(true)
{
double pV = (double)rand()/(double)RAND_MAX;
if (pV<probability)
{
rnd++;
}
else
{
fr++;
}
if (fr>r)
{
break;
}
}
return rnd;
}


期望:E=r*(1-p)/p

方差:V=r*(1-p)/(p*p)

wiki: http://zh.wikipedia.org/wiki/%E8%B4%9F%E4%BA%8C%E9%A1%B9%E5%88%86%E5%B8%83
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: