Хотя ищет C реализации ++ из NORMDIST
(кумулятивного) функции в Excel Я нашел this on a website:Магические числа в C++ реализация функции Excel NORMDIST
static double normdist(double x, double mean, double standard_dev)
{
double res;
double x=(x - mean)/standard_dev;
if (x == 0)
{
res=0.5;
}
else
{
double oor2pi = 1/(sqrt(double(2) * 3.14159265358979323846));
double t = 1/(double(1) + 0.2316419 * fabs(x));
t *= oor2pi * exp(-0.5 * x * x)
* (0.31938153 + t
* (-0.356563782 + t
* (1.781477937 + t
* (-1.821255978 + t * 1.330274429))));
if (x >= 0)
{
res = double(1) - t;
}
else
{
res = t;
}
}
return res;
}
Мои ограниченные знания математики заставили меня думать о Taylor series, но я не в состоянии определить, где эти цифры берутся:
0.2316419
, 0.31938153
, -0.356563782
, , -1.821255978
, 1.330274429
Можно ли предположить, откуда они берутся, и как они могут быть получены?
Hm, '3.14159265358979323846' довольно близко к' PI' ...;) – fredoverflow
Этот вопрос на Math.StackEchange, кажется уместным: [Абрамовицы Stegun приближения для кумулятивного нормального распределения] (HTTP://math.stackexchange.com/questions/888165/abramowitz-and-stegun-approximation-for-cumulative-normal-distribution) – JPhi1618