📄 gauss1.c
字号:
/* gauss1.c 产生高斯随机数 */
/*由uniform.c产生(0,1)上的n个相互独立的均匀分布随机数,均值为1/2,方差为1/12*/
/*根据中心极限定理,当n较大时近似有Z=sqrt(12/n)*((r1+r2+...+rn)-n/2) ~ N(0,1)*/
/*取n=12,则Z=(r1+r1+..+r12)-6 ~ N(0,1)*/
/*再通过变换X=mean+Z*sigma得到均值为mean方差为sigma^2的高斯分布随机数X*/
#include "uniform.c"
double gauss1(mean,sigma,s)
double mean,sigma;
long int *s;
{
int i;
double x,y;
double uniform();
for(x=0,i=0;i<12;i++)
x+=uniform(0.0,1.0,s);
x=x-6.0;
y=mean+x*sigma;
return(y);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -