随机过程上机实验报告 华中科技大学 HUST.docx

随机过程上机实验报告 华中科技大学 HUST.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
随机过程上机实验报告 华中科技大学 HUST

随机实验报告班级:通信1301班姓名:郭世康学号:U201313639指导教师:卢正新模块功能描述CMYRand类是整个系统的核心,它产生各种随机数据供后面的类使用。可以产生伪随机序列、均匀分布、正态分布、泊松分布、指数分布等多种随机数据。CRandomDlg类是数据的采集处理类。它可以将CMYRand产生的随机数据处理分析,再送入CScope等类进行模拟示波器显示。CScope等类是有关示波器显示的类。模块间的关系CRandomDlg类在整个程序中是一个不可缺少的环节,它调用CMYRand中的函数来产生符合所需分布的随机序列,再将产生的结果统计分析,送到CScope类中的函数进行模拟示波器显示。CMYRand为整个程序的核心,就是这个类产生所需分布的随机序列。CAboutDlg是模拟示波器界面上的有关按钮选项的类。我们在示波器界面上点击一个按钮,它就会执行这个按钮所对应功能,比如点击正态分布,它就会调用CRandomDlg中的对应函数,在调用CMYRand中的产生正态分布的函数,再将结果送到CScope类中进行显示,最后我们可以在示波器上看到图形。数据结构在本次随机试验中所填写的代码部分并没有用到有关于结构体等数据结构的东西。功能函数1、/*函数功能,采用线性同余法,根据输入的种子数产生一个伪随机数.如果种子不变,则将可以重复调用产生一个伪随机序列。利用CMyRand类中定义的全局变量:S, K, N, Y。其中K和N为算法参数,S用于保存种子数,Y为产生的随机数*/unsigned intCMyRand::MyRand(unsigned int seed){//添加伪随机数产生代码if(S==seed)Y=K*Y%N;else{S=seed;Y=K*seed%N;}return Y;}输入参数为seed,即种子。输出参数为y,即一个随机序列,它的取值在0到N之间。流程图:2、/*函数功能,产生一个在min~max内精度为4位小数的平均分布的随机数*/double CMyRand::AverageRandom(double min,double max){double dResult;dResult = 0;dResult=(double)MyRand(seed)/N;//产生0~1之间的均匀分布dResult=dResult*(max-min)+min;//将0~1之间的均匀分布通过乘以倍数放大到到min~maxreturn dResult;}输入参数为min,max,即均匀分布的范围。输出参数为dResult,即为随机序列。流程图:3、/*函数功能,根据大数定律,在min 到max 范围内产生正态分布的随机数Miu为均值,sigma为标准差*/double CMyRand::NormalRandom(double miu, double sigma, double min, double max){double dResult;dResult = 0;inti,n;double sum=0.0;n=200;for(i=0;in;i++)sum+=AverageRandom(min,max);//将均匀分布的随机数据进行求和,即大数定律的应用。dResult=(sum-n*0.5)/sqrt(n/12);dResult=dResult*sigma+miu;//添加正态分布随机变量产生代码return dResult;}输入参数miu,sigma,即为正态分布的均值和标准差,还有min和max,即为均匀分布随机数据的范围。输出参数为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、/*函数功能,产生泊松分布的样本数据*/unsigned intCMyRand::PoisonRandom(double lambda, double min, double max){unsigned intdResult = 0;//添加泊松分布随机变量产生代码inti=0;double p,F;p=exp(-lambda);F=p;while(1){if(AverageRandom(min,max)F)break;else{

文档评论(0)

ccx55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档