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

Определение законов распределения дискретных величин эмпирическим (опытным) путем


Как мы уже знаем, для случайного события статистическим аналогом вероятности служит относительная частота, которую можно получить, повторяя опыт или наблюдение n раз и регистрируя относительную частоту m/n появления события.

Тогда закон распределения вероятностей можно записать в виде следующей таблицы:

X

...



Относительная частота

...

При достаточно большом числе n повторений испытания мы вправе считать, что относительны частоты mi/n будут близки к соответствующим вероятностям pi= P(X = xi) (i = 1, 2, ..., k).

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

Составить процедуру, подсчитывающую относительные частоты выпадения очков нетрудно. Она может быть построена так:

Procedure Game(n, num : longint; var p : real);

      var

         m, x, i : longint;

      begin

         randomize;

         m := 0;

         for

i := 1 to n do

            begin

               x := random(6) + 1;

               if

x = num then m := m + 1

            end;

         p := m/n

      end;

Здесь, переменная n - число повторений испытания, которые задет пользователь, num - число очков на верхней грани игральной кости, вероятность выпадения которых надо определить, - это 1, 2, 3, 4, 5 или 6.

С помощью функции случайных чисел random(6) + 1 вырабатывается случайное целое число из промежутка [1, 6], т.е., по сути дела, моделируется выпадение числа очков при "бросание" игральной кости.

С помощью условного оператора if x = num then m := m + 1 подсчитывается число появления указанного числа очков при повторении испытания (бросания).

После завершения цикла, определяется относительная частота появления заданного числа очков и выводится в переменной p.

Программа

Program Problem1;

   uses WinCrt;

   var

      n, num : longint;

      p           : real;

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


   Procedure Game(n, num : longint; var

p : real);

      var

        m, x, i : longint;

      begin

        randomize;

        m := 0;

        for i := 1 to n do

          begin

            x := random(6) + 1;

            if x = num then m := m + 1

          end;

        p := m/n

      end;

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

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

   begin

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

     writeln('Введите число очков, вероятность');

     write('выпадения которых надо найти '); readln(num);

     Game(n, num, p);

     writeln('Относительная частота появления события ', p:1:9);

     writeln('Сравните с теоретически найденной вероятностью ', 1/6:1:9)

   end.

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

Однако возникают много вопросов. Самый первый из них - сколько повторений испытания надо сделать, чтобы с достаточной уверенностью можно было утверждать, что относительная частота равна вероятности? Какова степень этой "уверенности" или, выражаясь более точно, достоверности (достаточной уверенности)?

Чтобы ответить на эти и другие вопросы, надо обратиться к "числовым характеристикам распределения".


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