gasdev.cpp
来自「工程算法 这是一个很有用的工程数值算法集锦」· C++ 代码 · 共 28 行
CPP
28 行
double gasdev(int& idum)
{
static int iset;
static double gset;
double t,v1,v2,fac,r;
if (iset == 0.0)
{
do
{
v1 = 2.0 * ran1(idum) - 1.0;
v2 = 2.0 * ran1(idum) - 1.0;
r = v1 *v1 + v2 *v2;
}
while ((r >= 1.0) || (r == 0.0));
fac = sqrt(-2.0 * log(r) / r);
gset = v1 * fac;
t = v2 * fac;
return t;
iset = 1;
}
else
{
t = gset;
return t;
iset = 0;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?