📄 gran.c
字号:
/**********************************************************************/
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -