uniform.c

来自「生成均匀随机数列算法实现和生成高斯随即序列的两种算法实现」· C语言 代码 · 共 14 行

C
14
字号
/*  uniform.c   产生均匀分布的伪随机数           */
/*  引入迭代公式Xj+1=(aXj+c)_(mod m)             */
/*      再取       Yj=Xj/m,  j=1,2,...,          */

double uniform(a,b,seed)
double a,b;
long int *seed;
{ double t;
    *seed=2045*(*seed)+1;                  /*取a=2045,c=1*//*m=2^20=1048576*/
    *seed=*seed-(*seed/1048576)*1048576;
   t=(*seed)/1048576.0;                    /*m=2^20=1048576*/
   t=a+(b-a)*t;                            /*通过变换Zj=a+(b-a)*Yj产生(a,b)区间上的随机数*/
   return(t); 
}

⌨️ 快捷键说明

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