随机数产生原理及应用

随机数产生原理及应用

ID:5580185

大小:768.00 KB

页数:20页

时间:2017-12-19

随机数产生原理及应用_第1页
随机数产生原理及应用_第2页
随机数产生原理及应用_第3页
随机数产生原理及应用_第4页
随机数产生原理及应用_第5页
资源描述:

《随机数产生原理及应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、随机数产生原理及应用摘要:       本文简述了随机数的产生原理,并用C语言实现了迭代取中法,乘同余法等随机数产生方法,同时,还给出了在符合某种概率分布的随机变量的产生方法。 关键词:伪随机数产生,概率分布      1前言:      在用计算机编制程序时,经常需要用到随机数,尤其在仿真等领域,更对随机数的产生提出了较高的要求,仅仅使用C语言类库中的随机函数已难以胜任相应的工作。本文简单的介绍随机数产生的原理及符合某种分布下的随机变量的产生,并用C语言加以了实现。当然,在这里用计算机基于数学原理生成的随机数都是伪随机数。      注:这里生成的随机数所处的分布为0-1区间上的均匀分布。

2、我们需要的随机数序列应具有非退化性,周期长,相关系数小等优点。 2.1迭代取中法:   这里在迭代取中法中介绍平方取中法,其迭代式如下:                   Xn+1=(Xn^2/10^s)(mod10^2s)                   Rn+1=Xn+1/10^2s      其中,Xn+1是迭代算子,而Rn+1则是每次需要产生的随机数  。第一个式子表示的是将Xn平方后右移s位,并截右端的2s位。而第二个式子则是将截尾后的数字再压缩2s倍,显然:0=

3、大师的肩膀上前行吧。      迭代取中法有一个不良的性就是它比较容易退化成0.平方取中法的实现:#include#include #defineS2 floatXn=12345;//Seed&IterfloatRn;//ReturnVal voidInitSeed(floatinX0){      Xn=inX0;} /*      Xn+1=(Xn^2/10^s)(mod10^2s)      Rn+1=Xn+1/10^2s*/ floatMyRnd(){             Xn=(int)fmod((Xn*Xn/pow(10,S)),pow(10

4、,2*S));//herecan'suse%             Rn=Xn/pow(10,2*S);             returnRn;} /*测试主程序,注意,这里只列举一次测试主程序,以下不再重复*/intmain(){             inti;             FILE*debugFile;                          if((debugFile=fopen("outputData.txt","w"))==NULL)              {           fprintf(stderr,"openfileerror!");

5、           return-1;         }                       printf("");             for(i=0;i<100;i++)             {             tempRnd=MyRnd();fprintf(stdout,"%f",tempRnd);                    fprintf(debugFile,"%f",tempRnd);             }                               getchar();                       

6、   return0;} 前一百个测试生成的随机数序列:0.3990000.9201000.6584000.3490000.1801000.2436000.9340000.2356000.5507000.3270000.6929000.0110000.0121000.0146000.0213000.0453000.2052000.2107000.4394000.3072000.4371000.1056000.1151000.3248000.5495000.1950000.8025000.4006000.0480000.2304000.3084000.5110000.1121000.25660

7、00.5843000.1406000.9768000.4138000.1230000.5129000.3066000.4003000.0240000.0576000.3317000.0024000.0005000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。