Паскаль. Основы программирования

       

Предельная теорема Муавра-Лапласа


Если вероятность p наступления события A в каждом испытании постоянна и отлична от нуля и единицы, а число испытаний достаточно велико, то вероятность P(X = m) того, что в n независимых испытаниях событие A наступит m раз, приближенно равна:

Значение функции Гаусса 

Используя эти формулы можно составить процедуру вычисления вероятности по локальной формуле Муавра-Лапласа, но прежде составим функцию вычисляющую значение функции Гаусса:

{ Функция Гаусса }

   Function G(x : real) : real;

      begin

        G := exp(-sqr(x)/2)/sqrt(2*Pi)

      end;

Тогда процедура вычисления вероятности по локальной формуле Муавра-Лапласа будет следующей:

{ Процедура нахожд. вероятн. по локальной форм. Муавра-Лапласа }

   Procedure Local_Laplace(n, m : longint; p : real; var pp : real);

      var



        x : real;

      begin

        x  := (m - n*p)/sqrt(n*p*(1 - p));

        pp := G(x)/sqrt(n*p*(1 - p))

      end;

Пример 1. Вероятность того, что данное изделие будет забраковано, равна 0.2. Определить вероятность того, что в партии из 400 изделий будет 104 бракованных.

{ Использование локальной формулы Лапласа для вычисл. вероятн. }

Program Problem1;

   uses WinCrt;

   var

      n, m  : longint;

      p, pp : real;

{----------------------------------------------------------------------------------------}

{ Функция Гаусса }

   Function G(x : real) : real;

      begin

        G := exp(-sqr(x)/2)/sqrt(2*Pi)

      end;

{----------------------------------------------------------------------------------------}

{ Процедура нахожд. вероятн. по локальной форм. Муавра-Лапласа }

   Procedure Local_Laplace(n, m : longint; p : real; var pp : real);

      var

        x : real;

      begin

        x  := (m - n*p)/sqrt(n*p*(1 - p));

        pp := G(x)/sqrt(n*p*(1 - p))

      end;

{----------------------------------------------------------------------------------------}

{ Основная программа }

   begin

     write('Введите число изделий в партии '); readln(n);


     write(' Введите вероятность быть бракованным для одного ');

     write('изделия '); readln(p);

     write('Введите число изделий, вероятность которых надо ');

     write('найти '); readln(m);

     Local_Laplace(n, m, p, pp);

     writeln('Вероятность появления ', m, ' бракованных');

     writeln('изделий среди ', n, ' изделий  равна ', pp:1:6)

   end.

Пример 2. Появление бракованного изделия в партии оценивается вероятностью 0.5. Взято 100 изделий. Какова должна быть частота бракованных изделий, чтобы вероятность такой частоты была бы равна 0.0782?

{ Использование локальной формулы Лапласа для вычисл. вероятн. }

Program Problem2;

   uses WinCrt;

   var

      n, m  : longint;

      p, Pm : real;

{----------------------------------------------------------------------------------------}

{ Функция Гаусса }

   Function G(x : real) : real;

      begin

        G := exp(-sqr(x)/2)/sqrt(2*Pi)

      end;

{----------------------------------------------------------------------------------------}

{ Процедура определения частоты. 1-й способ. }

   Procedure

Frequency1(n : longint; p, Pm : real;

                                         var

m : longint);

      var

        x, pp : real;

      begin

        m := -1;

        repeat

          m  := m + 1;

          x  := (m - n*p)/sqrt(n*p*(1 - p));

          pp := G(x)/sqrt(n*p*(1 - p))

        until pp >= Pm

      end;

{----------------------------------------------------------------------------------------}

{ Основная программа }

   begin

     write('Введите общее число изделий в партии '); readln(n);

     write('Введите вероятность быть бракованным для одного ');

     write('изделия '); readln(p);

     write('Введите вероятность получения частоты ');  readln(Pm);

     Frequency1(n, p, Pm, m);

     writeln('Частота бракованных изделий равна ', m)

   end.

Пример 3. По данным длительной проверки качества выпускаемых запчастей брак составляет 13%. Определить вероятность того, что в непроверенной партии из 200 запчастей пригодных будет а) 174; б) от 150 до 180.



Program Problem3a;

   uses WinCrt;

   var

      n, m       : longint;

      p, q, pp : real;

{----------------------------------------------------------------------------------------}

{ Функция Гаусса }

   Function G(x : real) : real;

      begin

        G := exp(-sqr(x)/2)/sqrt(2*Pi)

      end;

{----------------------------------------------------------------------------------------}

{ Локальная формула Муавра-Лапласа }

   Procedure Local_Laplace(n, m : longint; p : real; var pp : real);

      var

        x : real;

      begin

        x  := (m - n*p)/sqrt(n*p*(1 - p));

        pp := G(x)/sqrt(n*p*(1 - p))

      end;

{----------------------------------------------------------------------------------------}

begin

     write('Введите число запчастей в партии '); readln(n);

     write(' Введите вероятность быть бракованным для одной запчасти ');

     readln(q);

     write('Введите число запчастей, вероятность которых надо ');

     write('найти '); readln(m);

     p := 1 - q;

     Local_Laplace(n, m, p, pp);

     writeln('Вероятность появления ', m, ' пригодных');

     writeln('запчастей среди ', n, ' изделий  равна ', pp:1:6)

   end.


Содержание раздела