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

2020-02-28 其他范文 下载本文

产生随机数,并实现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

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

x=0;y=0;for(i=0;iy)b[j]=b[j]+1;//统计各个范围内随机数个数 x=a[j]+x;//取其中的个数的和,方便计算 seed=16807*(seed%127773);//利用乘同余法产生其他随机数 if(seed

4.画图程序。

三.代码

详细代码见gau.cpp文件。

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

(1)

(2)

(3)

(4)

四.总结

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

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

《产生随机数,并实现0—1分布,验证中心极限定理,实现标准正态分布,并画出分布直方图.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
产生随机数,并实现0—1分布,验证中心极限定理,实现标准正态分布,并画出分布直方图
点击下载文档
相关专题 中心极限定理典型例题 正态分布 直方图 随机数 中心极限定理典型例题 正态分布 直方图 随机数
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文