3. Пример решения задачи
Условие задачи: сгенерировать
последовательность чисел, полученную
в результате соединения шести
последовательностей по 30 случайных
чисел в одну с экспоненциальным законом
распределения с параметрами
i,
.
Полученную последовательность упорядочить
по возрастанию и вывести на печать
среднее значение и дисперсию.
Метод и алгоритм решения задачи.
Для получения чисел с экспоненциальным
законом распределения используем
функцию Random и формулу
y=
.
Алгоритм решения задачи
представлен на нижеследующем рис.1.
Здесь R - массив случайных чисел; m - математическое ожидание; D - дисперсия.
Текст программы на языке Паскаль следующий:
PROGRAM PR6;
CONST nL=6; nk=30; nr=180;
VAR i,k,k1,j,n:integer;
s,s1,m,d,rm,y,x:real;
L:array [1..nL] of real;
r:array [1..nr] of real;
BEGIN
FOR i:=1 TO nL DO
BEGIN
WRITE(‘Введите лямбда ’,i);
READLN(L[i])
END;
Рис.1. Блок-схема алгоритма
Продолжение рис.1
n:=0; s:=0; s1:=0;
FOR i:=1 TO nL DO
FOR k:=1 TO nk DO
BEGIN
x:=RANDOM;
y:=-1/L[i]*ln(x);
n:=n+1;
r[n]:=y;
s:=s+y
END;
m:=s/nr;
FOR i:=1 TO nr DO
s1:=s1+sqr(r[i]-m);
d:=s1/(nr-1);
FOR k=1 TO nr-1 DO
BEGIN
rm:=r[k];
j:=k;
k1:=k+1;
FOR i:=k1 TO nr DO
IF r[i]<rm THEN rm:=r[i];
r[j]:=r[k];
r[k]:=rm
END;
WRITELN(‘m=’,m,’D=’,d)
END.
4. Задачи, выносимые на практические занятия
Для каждой из перечисленных ниже задач предлагается разработать алгоритм и программу.
1. Вычислить математическое ожидание, дисперсию, среднее квадратическое отклонение и эксцесс для 400 случайных величин, распределенных по закону хи-квадрат с параметром k=3.
2. Разработать датчик, формирующий массив M из 300 целых псевдослучайных неповторяющихся чисел, распределенных по экспоненциальному закону с параметром =0,5. Рассчитать дисперсию и среднее квадратическое отклонение. Определить количество обращений к датчику случайных чисел.
3. Написать программу, моделирующую следующий эксперимент. В ящике находятся 2000 шаров. Из них 1000-красных, 500-белых, 200-зеленых, 200-желтых, 50-черных, 50-синих. Из ящика случайным образом извлекается 100 шаров. Сообщите ЭВМ, сколько шаров каждого цвета вы желаете увидеть. Считайте, что после того как шар вынут и его цвет зафиксирован, шар возвращается в ящик. Программа должна моделировать извлечение шара из ящика, суммировать число шаров каждого цвета и вывести полученный результат, сообщенный вами ЭВМ.
4. Разработать алгоритм и программу игры - вбрасывание монет двумя игроками - x и y. У обоих игроков по 20 монет достоинством 1 руб. Они вбрасывают по одной монете на стол, закрывая их от соперника. Если выясняется, что обе монеты легли одной стороной, то их забирает игрок x; если же монеты легли на разные стороны, то они достаются игроку y. Вывести итоговые результаты -сколько монет будет в конце игры у каждого из игроков.
5. Построить гистограмму распределения по n классам случайных чисел, подчиненных геометрическому закону с параметром p=10-3. Случайные числа сведены в массив X(1000). Вычислить математическое ожидание и дисперсию.
6. Составить программу вычисления математического ожидания m и дисперсии D для моментов появления случайных событий t1, t2, ...,t200 и интервалов между ними, подчиненных экспоненциальному закону с параметром =1. Перед вычислением m и D для интервалов необходимо упорядочить по возрастанию элементы массива T, вычислить и записать в массив T1 интервалы между смежными ti.
7. Сгенерировать последовательность случайных чисел, равномерно распределенных в диапазоне [0,10]. Последовательность состоит из 100 чисел. Вычислить их среднее значение, коэффициент вариации. Построить гистограмму полученного распределения, разбив диапазон на десять интервалов.
8. Сгенерировать последовательность 100 случайных чисел xi с экспоненциальным законом распределения с параметром =0,1. Сформировать новую последовательность, состоящую из элементов yi = yi-1 + xi, где y1=x1. Для полученной последовательности вычислить среднее значение, дисперсию и вывести ее на печать в виде гистограммы, разделив диапазон на десять интервалов.
9. Сгенерировать три последовательности по 30 случайных чисел каждая. Числа в каждой последовательности равномерно распределены в диапазонах [0,5], [2,8], [4,10]. Свести их в один массив, расположив по возрастанию. Для сформированного массива вычислить среднее значение, дисперсию и вывести результаты на печать в виде гистограммы, разбив диапазон [0,10] на десять интервалов.
10. Сгенерировать последовательность из 50 случайных чисел с нормальным законом распределения (m=5, D=4) и последовательность из 50 случайных чисел с экспоненциальным законом распределения с параметром =5. Все числа свести в массив, расположив их по возрастанию. Вычислить среднее значение, дисперсию и вывести результаты на печать в виде гистограммы, разбив последовательность чисел на десять интервалов.
11. Написать
алгоритм и составить программу
моделирования 100 случайных величин с
плотностью распределения
,
0
x
1, >
0.
Вычислить коэффициент вариации для таких 100 чисел.
12. Написать
алгоритм и составить программу
моделирования 200 случайных величин с
плотностью распределения
,
x
0; a, b > 0. Вывести результаты на
печать в виде гистограммы для десяти
интервалов.
13. Составить программу генерирования 200 случайных чисел с биномиальным распределением с параметром p=0,7 [7, с.146]. Вычислить среднее, дисперсию и построить гистограмму, разбив последовательность чисел на двадцать интервалов.
14. Составить программу генерирования 200 случайных чисел с гамма-распределением (=2, =20) [7, с.146]. Вычислить коэффициент вариации и построить гистограмму, разбив последовательность чисел на десять интервалов.
15. Составить программу генерирования 100 случайных чисел с распределением Вейбулла (=3, x=3) [7, с.146]. Вычислить коэффициент асимметрии, эксцесс и построить гистограмму, разбив последовательность чисел на десять интервалов.
