МОДЕЛИРОВАНИЕ ДИСКРЕТНОЙ СЛУЧАЙНОЙ ВЕЛИЧИНЫ

End.

Begin

Begin

Var

Begin

Begin

Var

p:real; {вероятность отказа прибора}

r1,r2,r3:real; {случайные числа, моделирующие вероятность отказа блоков}

i:integer; {счетчик цикла }

n:integer; {число испытаний}

m:integer; {счетчик числа отказов прибора}

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

readln(n);

m:=0;

for i:=1 to n do

r1:=random;

r2:=random;

r3:=random;

if(r1<1/6) OR (r2<1/6) OR (r3<1/6)

thenm:=m+1;

end;

p:=m/n;

writeln('Вероятность отказа прибора равна',p)

х
у
end.

 

Рассмотрим применение метода статистических испытаний для нахождения числа π.

Пример 35.3. Нахождение числа π методом статистических испытаний.

Решение:

1. Поместим круг радиусом ½ в центр квадрата со стороной 1.

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

3. Подсчитываем число точек, попавших внутрь круга (т).

4. Вероятность попадания точки внутрь круга есть р т/п. С другой стороны, в силу геометрического определения вероятность события находится как На плоскости мерой является площадь, следовательно, вероятность попадания внутрь круга равна отношению площади круга к площади квадрата, т.е. р= = (R – радиус квадрата, R=1/2; а – сторона квадрата, а=1). Тогда р= . Получили, что . Расчет числа π будет тем точнее, чем большее количество точек п будет выбрано.

Блок схема нахождения числа π имеет вид:

– число испытаний
п – число испытаний
т:=0 обнуление счетчика числа точек, попавших в круг
i:=1 переменная-счетчик цикла
i>n
Присвоение значений х, у при помощи генератора случайных чисел
(х-1/2)2+(у-1/2)2≤1/4
т:=m+1- подсчет числа точек, попавших в круг
i:=i+1
pi:=4*т/п вычисление числа π
Проверка условия: лежит ли точка внутри круга с центром (1/2; 1/2) и радиусом 1/2
да
да
нет
нет

Составим программу реализации данного алгоритма на языке Turbo Pascal:

program pi;

pi:real; {значение числа π}

x,y;real; {координаты случайных точек внутри квадрата}

i:integer; {счетчик цикла }

n:integer; {число испытаний}

m:integer; {счетчик числа точек, попавших в круг}

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

readln(n);

m:=0;

for i:=1 to n do

x:=random;

y:=random;

if(х-1/2)*(х-1/2)+(у-1/2)*(у-1/2)<=1/4

thenm:=m+1;

end;

pi:=4*m/n;

writeln('Приближенное значение пи равно',pi)

Контрольные вопросы:

1. Какой процесс называют моделированием?

2. В чём заключается сущность метода статистических испытаний?

3. Какой прибор в ЭВМ называют физическим генератором?

4. Какую последовательность чисел называют псевдослучайной? Приведите пример одного из методов её получения.

5. Решите задачу: Составьте блок-схему алгоритма (программу на языке Turbo Pascal) нахождения определенного интеграла , если при х [0;1] методом статистических испытаний. Указание: Значение интеграла равно площади соответствующей криволинейной трапеции.

 

 

При использовании метода статистических испытаний для решения различных задач необходимо уметь моделировать случайные величины с различными законами распределений. Рассмотрим принцип моделирования дискретной случайной величины. Дискретная случайная величина задается законом распределения:

Х х1 х2 хn
Р p1 p2 pn

где в верхней строке даны значения случайной величины xi, а в нижней – соответствующие вероятности pi ( ).

Рассмотрим единичный отрезок. Разделим его на п частей, длины которых равны р1, р2, р3…рп соответственно.

р1
р2
р3
рп
х1
х2
х3
хп

С помощью генератора случайных чисел будем получать значения случайной величины из промежутка [0;1]: r1, r2, r3…rk. Если случайная величина попадает в i-й промежуток, то считаем, что дискретная случайная величина принимает значение хi. Рассмотрим моделирование ДСВ на примере.

Пример 36.1. Выполните моделирование дискретной случайной величины, заданной следующим законом распределения:

Х
Р 0,3 0,2 0,5

Решение: Разделим единичный отрезок на п частей, длины которых равны 0,2; 0,3 и 0,5 точками 0,3 и 0,5.

0
0,5
0,3
хп
1
2

С помощью генератора случайных чисел будем получать значения случайной величины из промежутка [0;1]: r1, r2, r3…rk. Если

0≤ri<0,3, то Х=0;

0,3≤ri<0,5, то Х=1;

0,5≤ri<1, то Х=2 (аналог интегральной функции распределения).

Блок-схема алгоритма и программа на языке Turbo Pascal будут выглядеть следующим образом:

program DSV;