NormRand.PAS

{* Случайные величины с нормальным распределением *}

Unit NORMRAND;
Interface
Implementation
Begin
 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.