请教编程高手,如何产生从-5到5的一组正态分布的随机数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教编程高手,如何产生从-5到5的一组正态分布的随机数相关的知识,希望对你有一定的参考价值。

需要用VC6.0编一个程序,需要产生20000个数字。必须要正态分布的。那位大侠帮下忙

#include <stdio.h>

//产生任意均值与方差的正态分布的随机数
// double u μ 正态分布的均值
// double g σ2=g2 正态分布的方差
// double * r 指向随机数种子
// double grn1() 返回一个均值u 方差g2 正态分布 的随机数

double grn1(double u,double g,double * r)
int i,m;
double s,w,v,t;
s=65536.0; w=2053.0; v=13849.0;
t=0.0;
for (i=1; i<=12; i++)
*r=(*r)*w+v; m=(int)(*r/s);
*r=*r-m*s; t=t+(*r)/s;

t=u+g*(t-6.0);
return(t);


int main()

double u,g,r;
r=5.0;u=1.0;g=1.5;
printf("\n");
for(int i=0;i<=9;i++)
for(int j=0;j<=4;j++)
printf("%10.7lf ", grn1(u,g,&r));

printf("\n");

printf("\n");


运行结果:

1.2386322 -1.1779938 0.5128021 1.9047699 1.5916595
1.1672211 -0.7747955 1.8593597 1.6634369 1.7311859
0.6563568 -1.4673004 -0.0460358 -0.9860992 0.3062592
3.9247894 -0.5367584 3.5153656 -0.3250885 0.0356293
0.1912689 0.2355804 0.2623138 0.3652191 3.6380463
1.1745453 2.0684662 0.4135590 2.3035736 4.8322601
-0.9066315 0.1806488 2.1878510 2.2087250 1.8370209
-0.3335114 3.2908783 0.8039398 1.2994232 -1.1289215
4.1126556 0.6179047 0.4805756 0.7944183 -1.3468170
1.6506195 2.3804779 2.4365082 1.9124603 0.9020844

参考 常用算法程序集(c语言描述)第三版

第三章 随机数的产生
3.5 产生任意均值与方差的正态分布的一个随机数
参考技术A 楼上老兄能否把你的《常用算法程序集(c语言描述)第三版》发我一份,谢谢了~
wrymax@qq.com
参考技术B #include <stdio.h>

//产生任意均值与方差的正态分布的随机数
// double u μ 正态分布的均值
// double g σ2=g2 正态分布的方差
// double * r 指向随机数种子
// double grn1() 返回一个均值u 方差g2 正态分布 的随机数

double grn1(double u,double g,double * r)
int i,m;
double s,w,v,t;
s=65536.0; w=2053.0; v=13849.0;
t=0.0;
for (i=1; i<=12; i++)
*r=(*r)*w+v; m=(int)(*r/s);
*r=*r-m*s; t=t+(*r)/s;

t=u+g*(t-6.0);
return(t);


int main()

double u,g,r;
r=5.0;u=1.0;g=1.5;
printf("\n");
for(int i=0;i<=9;i++)
for(int j=0;j<=4;j++)
printf("%10.7lf ", grn1(u,g,&r));

printf("\n");

printf("\n");


运行结果:

1.2386322 -1.1779938 0.5128021 1.9047699 1.5916595
1.1672211 -0.7747955 1.8593597 1.6634369 1.7311859
0.6563568 -1.4673004 -0.0460358 -0.9860992 0.3062592
3.9247894 -0.5367584 3.5153656 -0.3250885 0.0356293
0.1912689 0.2355804 0.2623138 0.3652191 3.6380463
1.1745453 2.0684662 0.4135590 2.3035736 4.8322601
-0.9066315 0.1806488 2.1878510 2.2087250 1.8370209
-0.3335114 3.2908783 0.8039398 1.2994232 -1.1289215
4.1126556 0.6179047 0.4805756 0.7944183 -1.3468170
1.6506195 2.3804779 2.4365082 1.9124603 0.9020844

参考 常用算法程序集(c语言描述)第三版

第三章 随机数的产生

以上是关于请教编程高手,如何产生从-5到5的一组正态分布的随机数的主要内容,如果未能解决你的问题,请参考以下文章

请教高手Windows Server2008 上的IIS7.5如何配置?

java中 MySQL与驱动jdbc连接不上,想请教高手:jdbc驱动:mysql-connector-java-5.1.18-bin.jar怎么用啊?

您能否帮助我了解如何使用 +- 运算符找到从 1 到 N 的一组给定数字的所有可能组合 [重复]

急!!请教高手:如何用MATLAB程序高效地对大批量的数据进行处理和保存?(回答满意追加5分)

如何在不从参考节点获取所有数据的情况下获取 Firebase 数据库中的随机键?

请教ACCESS高手一个问题!在线等,急呀!