Цель работы
- Разработать программу, реализующую соответствующую схему моделирования равномерно распределенных псевдослучайных чисел на отрезке [0,1].
- Найти
рекуррентное соотношение для вычисления вероятности .
Разработать и реализовать алгоритм моделирования соответствующей
псевдослучайной дискретной величины.
Задание
- Тип программного генератора моделирования псевдослучайных величин:
генератор Ковью
- Тип дискретного распределения :
Процесс моделирования
Рекуррентное соотношение:
Текст программы:
#include<math.h>
#include <fstream.h>
#define n 50 //ðàçìåð ïîñëåäîâàòåëüíîñòè
#define m 128 //ìîäóëü
void main(void)
{
int x=1,j,i;
float sv[100],p0,p,M;
ofstream out("1.txt");
ofstream out1("2.txt");
sv[0]=float(x)/m;
out << sv[0] << "\n";
for(j=1;j<n;j++)
{
x=(x+x*x)%m;
sv[j]=float(x)/m;
out<< sv[j] << "\n";
}
out.close();
p0=1/2.;
for(j=0;j<n;j++)
{
M=sv[j];
p=p0;
i=0;
M=M-p;
while((M>=0)&&(p!=0))
{
p=p/2.;
i++;
M=M-p;
}
out1 << i << "\n";
}
out1.close();
}
Результаты
0.0078125
0.015625
0.046875
0.328125
0.109375
0.640625
0.171875
0.953125
0.234375
0.265625
0.296875
0.578125
0.359375
0.890625
0.421875
0.203125
0.484375
0.515625
0.546875
0.828125
0.609375
0.140625
0.671875
0.453125
0.734375
0.765625
0.796875
0.078125
0.859375
0.390625
0.921875
0.703125
0.984375
0.015625
0.046875
0.328125
0.109375
0.640625
0.171875
0.953125
0.234375
0.265625
0.296875
0.578125
0.359375
0.890625
0.421875
0.203125
0.484375
0.515625
Вывод:
Из графика видно, что псевдослучайные величины распределены почти равномерно.
Моделирование псевдослучайной дискретной величины
0
0
0
0
0
1
0
4
0
0
0
1
0
3
0
0
0
1
1
2
1
0
1
0
1
2
2
0
2
0
3
1
6
0
0
0
0
1
0
4
0
0
0
1
0
3
0
0
0
1
Вывод:
Используя последовательность псевдослучайных величин, полученных в предыдущем пункте, мы смогли построить другую последовательность псевдослучайных величин распределенных по заданному закону с вероятностями, которые легко вычисляются по рекуррентной формуле.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.