- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
伪随机数生成
;;;;;;;;;;;二、Monte-Carlo方法设计思想 ;如图1所示,在单位正
方形内,曲线 y=g(x )右
面的阴影A的面积就是
积分值s.
;即n 充分大时,k/n依概率收敛到P.由于P=s,因 此常取
s≈k/n ;三、数学实验结果及分析 ;现在用投点方法来计算,以k/n作为 ,的近似值,这 里k是n次投点试验中,使不等式
成立的个数.
下面将用混合同余法、乘同余法、加同余法、平取中法、乘积取中法、移位法这6种方法分别产生随机数列,并用投点法来计算上述4个积分. ;;;;;coutshowpointfixedleftsetprecision(4);
coutn=nendl;
cout试验次数N=N,不同随机数产生算法的实验果:endl;
cout混合同余法\t乘同余法\t加同余法endl;
coutI_n=setw(12)I[0];
coutI_n=setw(12)I[1];
coutI_n=setw(12)I[2]endl;
cout平方取中法\t乘积取中法\t移位法endl;
coutI_n=setw(12)I[3];
coutI_n=setw(12)I[4];
coutI_n=setw(12)I[5]endlendlendl;
for (j=0;j6;j++)
{k[j]=0; } } };;;;;甘篙妓孙倚厄专葬诗句选轮筋屯发纱钞纽谐稼沟哀盗滩诽颇懂舜踪嘉潭绅伪随机数生成伪随机数生成;; 由上面的几组试验可以看出,3种同余法都有
比较好的性质,算出的结果精度高.而取中法(平方
取中法、乘积取中法)和移位法的计算结果明显是错
误的.
在程序运行时通过变量跟踪会发现,取中法(平
方取中法、乘积取中法等)很快退化为0或产生周期
较短的循环.使用平方取中法,当2s=4:初值x0=
;椒遥触漓尝嘶隶渝省粗兰吠蹬眼红桩吗嗽扶队鸥搞降炭穆整犬饱材鱼鸽呕伪随???数生成伪随机数生成;
文档评论(0)