交通系统仿真实验报告

上传人:hs****ma 文档编号:432873912 上传时间:2023-02-08 格式:DOC 页数:16 大小:552KB
返回 下载 相关 举报
交通系统仿真实验报告_第1页
第1页 / 共16页
交通系统仿真实验报告_第2页
第2页 / 共16页
交通系统仿真实验报告_第3页
第3页 / 共16页
交通系统仿真实验报告_第4页
第4页 / 共16页
交通系统仿真实验报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《交通系统仿真实验报告》由会员分享,可在线阅读,更多相关《交通系统仿真实验报告(16页珍藏版)》请在金锄头文库上搜索。

1、实验报告课程名称 道路交通系统仿真 学生姓名 学 号 专业班级 指导教师 院系名称 交通运输工程学院 2012 年 11 月 10 日实验一 随机数生成程序一. 实验要求产生11000的随机数,个数大约256个。二. 实验环境工具使用Visual C+ 6.0,程序类型 Win32 Console Application。三. 实验原理根据公式xi=a*xi-1mod(m),可根据所需范围值确定a和m的值,本实验中需要11000的随机数,因此可以选择a=35,m=1024。其周期为(m/4)=256,产生256个11024之间随机数。根据需要,我们舍弃大于1000的随机数,原理是我们使用中间变

2、量连接产生的数与我们需要的数组,通过对中间变量的不断循环,当产生大于1000的随机数时,我们继续使中间变量不断循环但不放入数组,从而舍弃这些数字,最终得到我们需要的11000的随机数的数组并输出数组中的数,并计数其个数,这样就完成了我们的产生随机数的目的。四. 实验步骤图一 随机数程序流程图 图二 随机数程序运行结果程序开始先给定初始值(11000以内奇数),根据给定的公式计算中间值temp,再判断temp的值是否小于1000,把小于1000的temp值赋给数组xi,循环执行该命令直至xi=x0,结束程序并输出数组值和数组大小。数组值随初始值改编而改变,初始值决定数组值的变化。五 分析总结由图

3、二随机数程序运行结果可以看出,该程序运行结果与我们所给与的数学模型期望达到的效果一致。程序运行正确,伪随机数的周期为256个,由于去除了大于1000的随机数,故程序结果显示为249,与数学模型的周期一致。附录#include void main(void) int i=1,j=0,temp=0;int a=35,m=1024;int x256;int k;printf(输入到达服务时间随机初始值:);scanf(%d,&x0);printf(n); while(i) temp=a*xi-1%m;while(temp1000) temp=a*temp%m; if(temp!=x0) xi=tem

4、p; printf(%5d,xi); i+; else j=i-1,i=0; printf(nnj=%dnn,j);实验二 单服务台排队系统仿真一. 实验要求单服务台对到达顾客进行服务,顾客单路排队,随机分配顾客的到达时间间隔和服务时间,从而确定顾客的到达时刻和服务开始结束时刻,并计算服务台的空闲时间和顾客的排队等待时间。通过程序实现对单服务台排队系统的仿真,根据程序运行结果计算重要结果属性值。二. 实验环境工具使用Visual C+ 6.0,程序类型 Win32 Console Application。三. 实验原理在程序设计中,顾客到达时间间隔time_interval和服务时间servi

5、ce_time由随机数确定。顾客到达时间间隔通过随机数分布并定义其分布区间,从而确定其到达间隔时间;服务时间也是先通过随机数程序产生一组随机数,然后通过对随机数区间的定义确定随机服务时间。这两个参数确定后可以通过数学方法确定其他参数,因此到达时间间隔和服务时间是程序中最重要的两个参数。四. 实验步骤 图三 单服务台仿真流程图 图四 随机时间间隔 图五 随机服务时间图六 单服务台排队系统顾客服务时刻表程序先通过随机数方法分配排队顾客的随机到达时间间隔和随机服务时间。随机到达时间间隔是用11000之间的随机数进行等概率分配给18分钟的到达间隔;随机服务时间是将11000的随机数分配给16分钟的服务

6、时间,其分配时段根据概率0.1,0.2,0.35,0.2,0.1,0.05分配,通过这种方法将11000以内的随机数分配给各个时间段,从而得到顾客的随机到达时间间隔和随机服务时间。得到这两个基本参数后,通过数学方法联系其他参数,运用程序的循环过程最终可以输出单服务台顾客服务时刻表。五. 分析总结通过程序运行和结果校正,程序输出结果正确,程序运行正确。我们以10个顾客为例,运行程序,可以计算出在该程序设定条件下的属性值:顾客平均等待时间=0.7 min服务员平均服务时间=3.4 min服务员平均空闲时间=1.2 min六. 附录#include int imax(int, int);void m

7、ain(void) int time_interval256; int reach_point256; int service_time256; int service_end_point256; int wait_time256; int free_time256; int x256; int y256; int n,max; int i=1,temp=0; int a=35,m=1024;/*输入顾客人数*/ printf(输入顾客数n: ); scanf(%d,&n);/*产生到达时间随机间隔*/printf(n输入到达时间间隔随机初始值(11000): );scanf(%d,&x0);

8、 printf(n); while(i=1) temp=a*xi-1%m;while(temp1000) temp=a*temp%m; if(temp!=x0) xi=temp; i+; else i=0; for(i=1;i=1&xi=126&xi=251&xi=376&xi=501&xi=626&xi=751&xi=876&xi=1000) time_intervali=8; i=1; printf(第1位顾客到达时间间隔为: 0); for(i=2;i=1) temp=a*yi-1%m;while(temp1000) temp=a*temp%m; if(temp!=y0) yi=temp

9、; i+; else i=0; for(i=1;i=1&yi=101&yi=301&yi=651&yi=851&yi=951&yi=1000) service_timei=6; for(i=1;i=n;i+) printf(n第%d位顾客的随机服务时间:%d ,i,service_timei); printf(nnn);/*主程序排队序列开始,将第一人单独考虑,后面的连续分配间隔时间*/ time_interval0=0;reach_point0=0;service_time0=0;service_end_point0=0;wait_time0=0;free_time0=0; time_interval1=0;reach_point1=0; wait_time1=0;free_time1=0; service_end_point1=reach_point1+service_time1; printf(顾客号=1); printf( 到达时间间隔=%d,time_interval1); printf( 到达时刻=%d,reach_point1); printf( 服务时间=%d,service_time1); printf( 服务结束时刻=%d,service_end_point1); printf( 等待时间=%d

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号