资源描述:
《计算机仿真技术演示与验证性实验报告四》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、重庆交通大学上机实验报告学院:信息科学与工程学院实验课程:计算机系统仿实验日期:4.12姓名陈彦陶学号631306020407专业电子信息工程实验名称随机数与随机变量产生实验成绩□实验目的明确□操作步骤正确□设计方案合理□实验结果合理□实验分析全面口实验报告规范评定日期、实验冃的(1)学习采用线性同余法产生随机数的方法;(2)学习几种产生离散系统随机变量的方法;(3)了解检验随机数均匀性与独立性的方法;二、实验主要内容(1)随机变量X在[6,12]均匀分布,请设计能够产生随机变量X的随机数发生器;(2)设计以随机数发生器产生具有如下概率密度函数的随机变X;f(x)=l/2eA-4x,x>0;
2、f(x)=5eAx,其他;三、实验设计方案(1)利用C语言编写#includevoidmain(){intal,xl,chml,i=O;doubler=0,x;intnum,a=0,b=0;scanf("%d,%d,%d,%d,%d",&a1,&x1,&c1,&m1,&num);scanf("%d,%d",&a,&b);for(;i<=num;i++)xl=(al*xl+cl)%ml;r=(doublc)xl/(doublc)m1;x=a+(b-a)*r;prinlf(“%f”,x);}}(2)#include#include#
3、includeinta1,x1,c11,nvalue;doubleprobd[25J;doubleSUB2(){xl=(al*xl+cl)%ml;return(double)x1/(double)ml;}intSUB1(){doubleu;inti;u=SUB2();for(i=l;i4、ubler=0,x,xka2;intnum,a=0,b=0,nvalue;printfC*输入乘子、初值、增量、模数,循环次数、取值左范围、取值右范围:”);scanf(,,%d%d%d%d%d%d%d,,,&a1,&x1,&c1,&m1,&num,&a,&b);for(;i<=num;i++)xl=(al*xl+cl)%ml;r=(double)xl/(double)m1;x=a+(b-a)*r;printf(n%fM,x);}printf("想要进行什么操作:1、测试均匀性;2、测试独立性”);scanf("%d",&q);switch(q)case1:{printf(H开始
5、测试均匀性:H);aO=a1;cO=cl;mO=ml;xO=xl;zO=xl;x=l.()/(b-a);probd[l]=x;for(i=2;i<=(b-a);i++)probd[ij=x+probd[i-1];for(i=1;i<=(b-a);i++)nxfi]=();nvalue=(b-a);for(i=l;i<=num;i++){m=SUB1();nx[m]=nx[ml+l;}mn=(float)num/(float)ntypcs;xka2二0.0;for(i=1;i<=ntypcs;i++){squ=nx[i]-mn;xka2+=squ*squ/mn;}printf(Ha=%f,
6、c=%f,m=%f,zO=%fH,al,cl,ml,z0);printf("thenumberofrandom=%d",num);for(i=0;i<=ntypes;i++){printf(nnumber(%d)=%d",i,nx[i]);printf("chi-square=%fH,xka2);case2:printfC*接下来测试独立性:“);printf(n输入循环次数num2:n);al=aO;cl=cO;m1=mO;xl=xO;zO=xl;x=SUB2();yy1=0.0;yy2=x;xxl=(x-0.5)*(x-0.5);for(i=2;i<=num1;i++
7、){y=SUB2();xx1+=(y-0.5)*(y-0.5);yyl+=x*y;yy2+=y;x=y;}yyl/=(num1-1.0);yy2/=numl;yy2*=yy2;xxl/=(num-L0);ro1=(yy1-yy2)/xx1;ro2=fabs(rol)*sqrt(num-1.0);printf("Ro=%f,u=%fro1,ro2);printfC仿真结果:");printf(na=%f,