gran.c
来自「压缩文件中是Error Correction Coding - Mathemat」· C语言 代码 · 共 35 行
C
35 行
/**********************************************************************/
/* Generate a unit-variance Gaussian random number.
This function calls rand(), so you can control the seed using
void srand(unsigned int seed);
Following Numerical Recipes
*/
#include <stdlib.h>
#include <math.h>
static int graniset = 0;
static double grangset;
double gran(void)
{
double rsq, v1, v2, fac;
if(!graniset) {
graniset = 1;
do {
v1 = 2*(rand()/(double)RAND_MAX) - 1;
v2 = 2*(rand()/(double)RAND_MAX) - 1;
rsq = v1*v1 + v2*v2;
} while(rsq > 1 || rsq == 0);
fac = sqrt(-2*log(rsq)/rsq);
grangset = v1*fac;
return v2*fac;
}
else {
graniset = 0;
return grangset;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?