⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gauss2.c

📁 生成均匀随机数列算法实现和生成高斯随即序列的两种算法实现
💻 C
字号:
/*      gauss2.c    产生高斯随机数   */

/*(1) 由uniform.c产生(0,1)之间的均匀随机数u1,u2*/
/*(2) 令v1=2*u1-1,v2=2*u2-1,s=v1^2+v2^2*/
/*(3) 若s>1则转向(1)*/
/*(4) 给出z=sqrt(-2*lns/s)*v1,则z服从高斯分布*/
/*(5) 再通过变换x=mean+sigma*z得到均值为mean方差为sigma^2的高斯随机数x*/


#include "math.h"
#include "uniform.c"

double gauss2(double mean,double sigma,long int *s)
{double u1,u2,v1,v2,z,x,y;
 double uniform(double ,double ,long int *);
  do
  {u1=uniform(0.0,1.0,s);
   u2=uniform(0.0,1.0,s);
   v1=2*u1-1.0;
   v2=2*u2-1.0;
   x=v1*v1+v2*v2;
  }
 while(x>1);
 z=sqrt(-(2*log(x)/x))*v1;
 y=mean+sigma*z;
 return(y);
}    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -