版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、随 机 实 验 报 告班级:通信1301班姓名:郭世康学号:U201313639指导教师:卢正新一、 模块功能描述 CMYRand类是整个系统的核心,它产生各种随机数据供后面的类使用。可以产生伪随机序列、均匀分布、正态分布、泊松分布、指数分布等多种随机数据。 CRandomDlg类是数据的采集处理类。它可以将CMYRand产生的随机数据处理分析,再送入CScope等类进行模拟示波器显示。 CScope等类是有关示波器显示的类。二、 模块间的关系CRandomDlg类在整个程序中是一个不可缺少的环节,它调用CMYRand中的函数来产生符合所需分布的随机序列,再将产生的结果统计分析,送到CScop
2、e类中的函数进行模拟示波器显示。CMYRand为整个程序的核心,就是这个类产生所需分布的随机序列。CAboutDlg是模拟示波器界面上的有关按钮选项的类。 我们在示波器界面上点击一个按钮,它就会执行这个按钮所对应功能,比如点击正态分布,它就会调用CRandomDlg中的对应函数,在调用CMYRand中的产生正态分布的函数,再将结果送到CScope类中进行显示,最后我们可以在示波器上看到图形。 三、 数据结构 在本次随机试验中所填写的代码部分并没有用到有关于结构体等数据结构的东西。四、 功能函数1、/*函数功能,采用线性同余法,根据输入的种子数产生一个伪随机数.如果种子不变,则将可以重复调用产生
3、一个伪随机序列。利用CMyRand类中定义的全局变量:S, K, N, Y。其中K和N为算法参数,S用于保存种子数,Y为产生的随机数*/unsigned int CMyRand:MyRand(unsigned int seed)/添加伪随机数产生代码if(S=seed)Y=K*Y%N;elseS=seed;Y=K*seed%N;return Y;输入参数为seed,即种子。输出参数为y,即一个随机序列,它的取值在0到N之间。流程图:2、/*函数功能,产生一个在minmax内精度为4位小数的平均分布的随机数*/double CMyRand:AverageRandom(double min,dou
4、ble max)double dResult;dResult = 0;dResult=(double)MyRand(seed)/N;/产生01之间的均匀分布dResult=dResult*(max-min)+min;/将01之间的均匀分布通过乘以倍数放大到到minmaxreturn dResult;输入参数为min,max,即均匀分布的范围。输出参数为dResult,即为随机序列。流程图:3、/*函数功能,根据大数定律,在min 到max 范围内产生正态分布的随机数Miu为均值,sigma为标准差*/double CMyRand:NormalRandom(double miu, double
5、sigma, double min, double max)double dResult;dResult = 0;int i,n;double sum=0.0;n=200;for(i=0;i<n;i+)sum+=AverageRandom(min,max);/将均匀分布的随机数据进行求和,即大数定律的应用。dResult=(sum-n*0.5)/sqrt(n/12);dResult=dResult*sigma+miu;/添加正态分布随机变量产生代码return dResult;输入参数miu,sigma,即为正态分布的均值和标准差,还有min和max,即为均匀分布随机数据的范围。输出参数
6、为dResult,即为得到的正态分布随机变量。流程图:4、/*函数功能,产生指数分布的随机数,参数为lambda*/double CMyRand:ExpRandom(double lambda, double min, double max)double dResult = 0.0;/添加指数分布随机变量产生代码dResult=-1*log(AverageRandom(min,max)/lambda;return dResult;输入参数为指数分布的参数lambda和均匀分布随机序列的范围min、max,输出参数dResult为得到的指数分布随机序列。流程图:5、/*函数功能,产生泊松分布的样
7、本数据*/unsigned int CMyRand:PoisonRandom(double lambda, double min, double max)unsigned int dResult = 0;/添加泊松分布随机变量产生代码int i=0;double p,F;p=exp(-lambda);F=p;while(1)if(AverageRandom(min,max)<F)break;elsep=lambda*p/(lambda+1);F=F+p;i+;dResult=i;return dResult;输入参数为lambda,即为泊松分布的参数,还有均匀分布随机序列的范围min、m
8、ax。输出参数为dResult,即为服从泊松分布的随机数据样本。流程图:6、/*函数功能,计算任意分布的随机过程的均值*/double CMyRand:Ex(void)double Ex = 0;/添加均值计算代码 int i;double sum=0;for(i=0;i<500;i+)sum+=AverageRandom(0,2);Ex=sum/i;return Ex;输出参数为任意随机分布的均值。流程图:7、/*函数功能,计算随机过程的自相关序列*/double* CMyRand:Rx(double lambda, int points)int m,I;double *Rx = (double*)malloc(2*points+1)*sizeof(double);/添加自相关序列产生代码/产生的自相关序列存入Rx中,Rx可当作数组使用/不要在本函数中释放该数组! I=5;int j=0;for(j=0,m=-1*points;m<=points;j+,m+)*(Rx+j)=I*I*exp(-2*lambda*abs(m);return Rx;输入变量lambda即为泊松分布的参数,points为所要计算的点数,即为自相关函数中自变量的取值范围。输出参量RX为指向自相关函数一系列函数值的指针。流程图:五、 实验小结通过本次实验,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文明校园演讲稿范文300字(8篇)
- 护理见习自我评价
- 工作失职万能检讨书(6篇)
- 房屋所有权证明范文
- 小区关于燃放烟花爆竹的承诺书(5篇)
- 幸运是不存在的努力才是硬道理
- 2025年山东淄博沂源县事业单位招考115人管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济宁邹城市事业单位招聘工作人员(综合类)113人管理单位笔试遴选500模拟题附带答案详解
- 2025年山东济宁市属事业单位招聘47人(教育类)管理单位笔试遴选500模拟题附带答案详解
- 开会迟到检讨书范文
- 6000吨年氧化羰化制碳酸二甲酯合成工艺设计说明书
- ASME压力容器工艺评定试板取样尺寸
- 治理超限超载从业人员学习培训资料
- 人教版八年级上册 第十二章12.1 全等三角形复习课 教案
- 机械原理课程设计设计加热炉推料机传动装置
- 立井井筒装备方案
- 给我店周边各企事业单位领导赠送体验券方案的请示
- 世界气候分布图(空白轮廓底图)
- 山东省建设工程质量监督档案样表
- 天津市工伤职工停工留薪期确定通知书
- 小学二年级数学期末口试模拟试题
评论
0/150
提交评论