Предельная теорема Муавра-Лапласа
Если вероятность 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.