- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《随机数生成原理实现方法不同编程语言的随机数函数
1-0:Microsoft VC++产生随机数的原理: Srand ( )和Rand( )函数。它本质上是利用线性同余法,y=ax+b(mod m)。其中a,b,m都是常数。因此rand的产生决定于x,x被称为Seed。Seed需要程序中设定,一般情况下取系统时间作为种子。它产生的随机数之间的相关性很小,取值范围是0—32767(int),即双字节(16位数),若用unsigned int 双字节是65535,四字节是4294967295,一般可以满足要求。 1-1: 线性同余法: 其中M是模数,A是乘数,C是增量,为初始值,当C=0时,称此算法为乘同余法;若C≠0,则称算法为混合同余法,当C取不为零的适当数值时,有一些优点,但优点并不突出,故常取C=0。模M大小是发生器周期长短的主要标志,常见有M为素数,取A为M的原根,则周期T=M-1。例如: a=1220703125 a=32719 (程序中用此组数) a=16807 代码: void main( ) { const int n=100; double a=32719,m=1,f[n+1],g[n],seed; m=pow(2,31); cout设置m值为 m-1endl; cout输入种子endl; //输入种子 cinseed; f[0]=seed; for(int i=1;i=n;i++) //线性同余法生成随机数 { f[i]=fmod((a*f[i-1]),(m-1)); g[i-1]=f[i]/(m-1); cout.setf(ios::fixed);cout.precision(6); //设置输出精度 couti \tg[i-1]endl; } } 结果分析:统计数据的平均值为:0.485653 统计数据的方差为:0.320576 1-2:人字映射 递推公式 就是有名的混沌映射中的“人字映射”或称“帐篷映射”,它的非周期轨道点的分布密度函数:人字映射与线性同余法结合,可产生统计性质优良的均匀随机数。 for(int i=1;i=n;i++) //线性同余法生成随机数 { f[i]=fmod((a*f[i-1]),m); if(f[i]=m/2) //与人字映射结合生成随机数 { f[i]=2*f[i]; } else { f[i]=2*(m-f[i])+1; } 1-3:平方取中法——冯?诺伊曼 1946年前后,由冯?诺伊曼提出,他的办法是去前面的随机数的平方,并抽取中部的数字。例如要生成10位数字,而且先前的值是5772156649,平方后得到33317792380594909201,所以下一个数是7923805949。 for(j=1;j=n;j++) { i[j]=i[j-1]*i[j-1]; i[j]=i[j]/pow(10,5); i[j]=fmod(i[j],pow(10,10)); g[j]=i[j]/pow(10,10); cout.setf(ios::fixed);cout.precision(6); //设置输出精度 coutj\tg[j]endl; } 二:任意分布随机数的生成 利用(0,1)均匀分布的随机数可以产生任意分布的随机数。主要的方法有反函数法,舍选法,离散逼近法,极限近似法和随机变量函数法等。这里主要讨论了反函数法,当然对于具体分布函数可以采用不同的方法。 设随机变量X具有分布函数F(X),则对一个给定的分布函数值,X的值为 其中inv表示反函数。现假设r是(0,1)均匀分布的随机变量R的一个值,已知R的分布函数为 因此,如果r是R的一个值,则X具有概率 也就是说如果 (r1,r2,...,rn)是R的一组值,则相应可得到的一组值 具有分布。从而,如果我们已知分布函数的反函数,我们就可以从
您可能关注的文档
最近下载
- 汉威 HS 7X系列数字式超声波探伤仪使用说明书.pdf VIP
- 中华民族共同体概论课件第二讲树立正确的中华民族历史观PPT.ppt VIP
- “电—能—碳”模型构建与碳排放预测:以江苏为例进行实证分析.docx VIP
- 《合同风险防控要点》课件.ppt VIP
- 【山东省】DB37T 3366-2018 涉路工程技术规范(高清).pdf VIP
- 北师大版八年级数学上册第三章位置与坐标测试题.pdf VIP
- 18DX009 数据中心工程设计与安装.docx VIP
- 10KV配电系统的电流互感器2CT、3CT的比较.pdf VIP
- GB50790-2013(2019年版):±800kV直流架空输电线路设计规范(2019年版).pdf VIP
- 《概率论与数理统计》第8章 回归分析.ppt VIP
文档评论(0)