陈默 2009年09月05日 星期六 11:00 | 1868次浏览 | 9条评论
学习笔记
等地铁的时间——在区间(a,b)上均匀分布的随机数函数
rnd(1)*(b-a)+a
设地铁10分钟一趟,乘客到达车站的时间是随机的,以分钟为单位(不满一分钟按一分钟算),模拟10000名乘客等车时间的人数分布,即等了1分钟、2分。。10分钟的人各有多少个?
//~ abjvn(a,b),在区间ab上均匀分布的随机数函数
double abjvn(double a,double b)
{
double f;
f=rnd(1)*(b-a)+a;
return f;
}
int main(int argc,char** argv)
{
static int a[11],i,k;
rnd(-2);
printf("\n以分钟为单位,模拟等车的人数:\n");
for(i=1;i<=10000;i++)
{
k=abjvn(0,10)+1;
//printf("%3d",k);
a[k]++;
}
for(i=1;i<=10;i++) printf("等%2d分钟:%5d 人\n",i,a[i]);
rnd(-3);
return 0;
}
这是书上给的函数,需要#include "rndlib.h",昨天的那个头文件。
我个人认为,main函数可以改成
int main(int argc,char** argv)
{
static int a[10],i,k; //必须要static才行,开始时元素清0
rnd(-2);
printf("\n以分钟为单位,模拟等车的人数:\n");
for(i=1;i<=10000;i++)
{
k=abjvn(0,10);
printf("%3d",k);
a[k]++; //等了k+1分钟中的人数+1
}
for(i=0;i<10;i++) printf("等%2d分钟:%5d 人\n",i+1,a[i]);
rnd(-3);
return 0;
}
应该和书上给的例子,没什么区别。。。
Zeuux © 2024
京ICP备05028076号
回复 王依依 2009年09月05日 星期六 11:46
static 不如 int a[10] = {0}; 如果不是main() 的话
回复 陈默 2009年09月05日 星期六 11:57
算法。。
我自己借
今
回复 王依依 2009年09月05日 星期六 12:01
数据结构险挂....
回复 陈默 2009年09月05日 星期六 12:01
回复 王依依 2009年09月05日 星期六 12:07
回复 陈默 2009年09月05日 星期六 11:48
sta
回复 王依依 2009年09月05日 星期六 11:50
回复 陈默 2009年09月05日 星期六 11:51
回复 王依依 2009年09月05日 星期六 11:51