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

Гипергеометрическое распределение


 

Биномиальное распределение вероятностей точно только при условии отбора изделий по схеме случайной повторной выборки.

На практике изделия для проверки отбираются по схеме случайной бесповторной выборки, т.е. изделия из партии отбираются каждый раз случайно, но отобранные изделия не возвращаются в партию.

Схема случайной бесповторной выборки приводит уже не к биномиальному, а к так называемому гипергеометрическому закону распределения.

Пример 1. В урне находится N шаров, из которых M белых. Пусть один за другим без возврата (или одновременно, что одно и то же) вынимается n

M) шаров. Тогда вероятность того, что среди этих вынутых n шаров будет m белых шаров, равна

Для вычисления гипергеометрических вероятностей найдем рекуррентную формулу для вычислений. Здесь тем более могут получаться очень большие числа.

Логика рассуждений будет такая же, как и при нахождении подобной формулы для биномиального закона распределения.

отсюда получаем:

Для начального значения, при m = 0, находим:



Надо заметить, что если число изделий в партии велико, а число отобранных изделий составляет весьма малую долю всей партии, поэтому расчет вероятностей по формулам биномиального распределения дает достаточно хорошие приближения.

{ Гипергеометрический закон распределения вероятностей }

Program Problem1;

   uses WinCrt;

   var

     p, s, s1, s2           : real;

     nn, mm, n, m, k : longint;

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

{ Процедура вычисления числа сочетаний из n элементов по k }

   Procedure

Combination(n, k : integer; var s : real);

      var

         i : longint;

      begin

         s := 1;

         if k = 0  then s := 1

                       else for i := 1 to n - k do s := s*(k + i)/i

      end;

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

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

   begin

     write('Введите число всех шаров в урне '); readln(nn);

     write('Введите число всех белых шаров в урне '); readln(mm);

     write('Введите число извлекаемых из урны шаров ');

     readln(n);

     writeln('Введите число белых шаров, вероятность');

     write('получения которых Вы хотите найти '); readln(k);

     Combination(nn, n, s); Combination(mm, k, s1);

     Combination(nn - mm, n - k, s2);

     p := (s1*s2)/s;

     writeln;

     writeln('Вероятность того, что среди вынутых ', n);

     writeln('шаров будет ', k, ' белых шаров, равна ', p:1:6)

   end.

Математическое ожидание гипергеометрического распределения равно

Дисперсия определятся формулой:



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