Метод обратных величин генерации случайных величин с произвольным законом распределения
Автор: Aleks129 • Май 11, 2023 • Лабораторная работа • 488 Слов (2 Страниц) • 195 Просмотры
Цель работы:
Изучение метода обратных величин генерации случайных величин с произвольным законом распределения.
Вариант 3
[pic 1]
[pic 2]
[pic 3]
От данной функции невозможно взять первообразную, поэтому берем функцию из методического пособия из примера 1.
[pic 4]
Вместо λ в данную функцию подставляем номер нашего варианта, в данном случае число 3.
[pic 5]
[pic 6]
Находим первообразную функции, для этого аналитически вычислим интеграл:
[pic 7]
Блок схема
[pic 8] [pic 9][pic 10]
Рисунок 1 – Блок схема
Программа для нахождения 100 случайных чисел
#include "stdafx.h"
#include "math.h"
#include "stdlib.h"
#include "iomanip"
#include "conio.h"
#include "iostream"
int _tmain()
{
FILE *fp;
int i;
float f, x, y;
if ((fopen_s(&fp, "E:/USER/2010/ttt.txt", "w")) != 0)
{
printf("error");
}
else
{
for (i = 0; i < 100; i++)
{
x = rand() / 32767.0;
/* f = (3.0*exp(-3.0*x));*/
y = (-1.0 / 3.0)*log(x);
fprintf(fp,"%f\n", y);
}
fclose(fp);
system("pause");
}
scanf_s("%i", &i);
return 0;
}
Полученные значения:
2.227868
0.191145
0.547830
0.070759
0.178709
0.244745
0.349663
0.036619
0.064998
0.097406
0.582693
0.050684
0.113928
0.222146
0.396915
1.400244
0.797493
0.336453
0.638399
0.598793
0.003847
0.269375
0.709311
1.788913
1.573474
0.324393
0.210582
0.186681
0.169297
0.166318
0.598119
0.136971
0.265585
0.347925
0.954673
0.166033
0.081405
...