人到齐才开会的等待时间——伽马分布的随机数函数
当事情发生一定次数后才做某一件事情,如等够了4个人在打扑克(O_O)~
公式:x=-k*ln(r1*r2*..*rn);
其中,k为等待事件需要发生的次数,n为事情每n段时间发生一次。
//~ gamma,伽马分布函数
//~ 当某一事件发生k次之后才做另一件事情,而我们等待的事件每n时间发生一次
//~ 返回值为做另一件事情之前所等待的时间
double gama(int k,int n)
{
double s=1.0;
int i;
for(i=1;i<=k;i++) s*=rnd(1);
return -n*log(s);
}
设去参加某种活动,平均2分钟来1个人,每等够3个人则开走一辆出租车,模拟人等待开车所需的时间,程序运行一次,模拟500次。
int main(int argc,char** argv)
{
static int a[25],i,j,k=3,m=500,n=2;
double s;
rnd(-2);
printf(“平均2分钟来一个人,够3个人开走一辆车,模拟等待的时间:\n”);
for(i=1;i<=m;i++)
{
s=gama(k,n);
printf(“%lf “,s);
j=(int)(s+0.5); //个人认为,这里+0.5之后去整相当于四舍五入,不知是不是
if(j>24) j=24;
a[j]++;
}
for(j=0;j<=24;j++) printf(“等待%3d分钟,有%3d人次\n”,j,a[j]);
rnd(-3);
return 0;
}
以上,都需要include在0904blog里的那个rndlib.h的头文件
今天的文章c语言伽马分布随机数,陈默的博客:090906伽马分布的随机数函数 – 哲思分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/11120.html