|
NormRand.PAS |
|
{* Случайные величины с нормальным распределением *}Unit NORMRAND; InterfaceImplementationBegin writeln( 'Реализация распределения по нормальному закону
'); End. Program pas;
Uses NormRand.pas; {* Эту строку можно удалить *}
Function NormRand (Mx, S : Real) : Real; { Mx - мат.ожидание, S - среднеквадр.отклонение }
Var {* В работе нам потребуются переменные: *}
A : Real;
B : Real;
R : Real;
SQ : Real;
Begin
Repeat A := 2 * Random - 1;
B := 2 * Random - 1;
R := Sqr(A) + Sqr(B)
Until (R < 1);
SQ := Sqrt( - 2 * Ln(R) / R);
NormRand := Mx + S * A * SQ
End.
|