陈默 2009年09月06日 星期日 08:50 | 1732次浏览 | 4条评论
学习笔记
日光灯管的寿命——指数分布的随机数函数
某个特定事件发生所需要等待的时间服从指数分布
公式为x=-k*lnr
其中,k为平均所需时间,r为随机数
//~ zhishu,指数分布函数
//~ 返回值x为特定事件发生时等待的次数
double zhishu(double k)
{
return -k*log(rnd(1));
}
模拟电子管的寿命100次,设其平均寿命为1000小时。
int main(int argc,char** argv)
{
static int a[11],i,k,m=100;
double s,t=1000;
rnd(-2);
printf("模拟电子管寿命100次,寿命服从指数分布:\n");
for(i=1;i<=m;i++)
{
s=zhishu(t);
//~ printf("%lf ",s);
k=(int)s/t;
if(k>10) k=10;
a[k]++;
}
for(k=0;k<=10;k++) printf("寿命%5d~%5d小时,有%5d次\n",k*1000,k*1000+1000,a[k]);
rnd(-3);
return 0;
}
上述代码需要include之前0904blog里的rndlib.h
我刚刚printf看了看,zhishu(t)返回的结果,返回值居然还有2.XX,要是买了个灯泡两小时就坏了,岂不哭死了
Zeuux © 2024
京ICP备05028076号
回复 杨嘉健 2009年09月06日 星期日 10:59
回复 陈默 2009年09月06日 星期日 11:18
我也懒得
回复 杨嘉健 2009年09月06日 星期日 11:21
指数函数
负
^^
回复 陈默 2009年09月06日 星期日 12:38
谢谢哈