Нормальное распределение
{>>Возвращает случайное число, распределенное по нормальному закону распределения с заданным математическим ожиданием и дисперсией Зависимости: System}
function Gauss(Mx, Sigma: Extended): Extended;
var
a, b, r, Sq: Extended;
begin
repeat
a := 2*Random - 1;
b := 2*Random - 1;
r := Sqr(a) + Srq(b);
until r<1;
Sq := Sqrt(-2*Ln(r)/r);
Result := Mx + Sigma * a * Sq;
end; |
Пример использования:
X := Gauss(0, 1); |
В стандартном модуле Math есть функция
function RandG(Mean, StdDev: Extended): Extended;
|