产生随机数,并实现0—1分布,验证中心极限定理,实现标准正态分布,并画出分布直方图(共5篇)

时间:2019-05-14 00:35:46下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《产生随机数,并实现0—1分布,验证中心极限定理,实现标准正态分布,并画出分布直方图》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《产生随机数,并实现0—1分布,验证中心极限定理,实现标准正态分布,并画出分布直方图》。

第一篇:产生随机数,并实现0—1分布,验证中心极限定理,实现标准正态分布,并画出分布直方图

随机信号大作业

题目:产生随机数,并实现0—1分布,验证中心极限定理,实现标准正态分布,并画出分布直方图。

一.思路

1.产生随机数。首先要确保数的随机性,利用时间的随机性来实现。

x2.产生0—1分布。随机数是在一定范围内产生的,利用数值x(a,b),得ba

到0-1均匀分布。

3.产生高斯分布。利用中心极限定理——设从均值为μ、方差为δ²(有限)的任意一个总体中抽取样本量为n的样本,当n充分大时,样本均值的抽样分布近似服从均值为μ、方差为δ²/n的正态分布。

二.实现方法。

1.利用函数来调用系统的时间,产生初值——随机数种子Seed,利用乘同余法产生随机数列:

rnxn/Mxn1xn

2.产生0—1分布。a[i]=seed/M产生0—1分布数。在这里要注意处理溢出情况,当Seed<0时,用seed=seed+M来消除溢出。

3.利用中心极限定理将0—1分布实现标准正态分布。算法实现步骤如下:随机选取n个随机数,利用下公式:

nnx(ri)/ 212i1n

在这里我们取n=12来化简计算:

标准正态分布数y=x。

代码如下:

int seed;

float a[100],b[100]={0};seed=sys.wMilliseconds;//随机种子输入 int i,j,w,k;float x,y;for(w=0;w<5000;w++){

x=0;y=0;for(i=0;i<100;i++){};for(j=20;j<32;j++){};y=x-6;//产生正态分布随机数 printf(“%lf”,y);for(j=0;j<100;j++){} if(-3+0.2*jy)b[j]=b[j]+1;//统计各个范围内随机数个数 x=a[j]+x;//取其中的个数的和,方便计算 seed=16807*(seed%127773);//利用乘同余法产生其他随机数 if(seed<0)seed += 2147483647;//处理溢出的情况 a[i]=seed/2147483647.0;//a即为-1均匀分布数

4.画图程序。

三.代码

详细代码见gauss.cpp文件。

执行结果如图所示,表明可基本实现正态分布:

(1)

(2)

(3)

(4)

四.总结

1.输出图形与标准正态分布存在差异,主要是因为选取随机数数量有限,导致结果存在差异。但已经能初步验证中心极限定理的正确性。

2.本次作业主要困难在于画图的实现。暴露出编程能力欠缺太多的问题。

下载产生随机数,并实现0—1分布,验证中心极限定理,实现标准正态分布,并画出分布直方图(共5篇)word格式文档
下载产生随机数,并实现0—1分布,验证中心极限定理,实现标准正态分布,并画出分布直方图(共5篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐