Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л р 1-Датчики випадкових чисел.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
444 Кб
Скачать
☆

Завдання для виконання

1.Нормальний розподіл

p(x)=(2)1/2exp(-x 2/2) , x(-, ). (1.2.2)

Алгоритм А1.

0. Зарезервовано константу с =2.

1. R=

2. =c2.

3. U1=R cos, U2=R sin.

Алгоритм а2

  1. V1=21-1, V2=22-1

  2. s= (V1)2+(V2)2

  3. Якщо s1, повернутися до п. 1

  4. R= , U1=V1 R, U2=V2 R.

Обидва алгоритми реалізують <<метод полярних координат>>. Найчастіше алгоритм А2 більш ефективний.

Для моделювання нормального розподілу з параметрами m і = слід зробити перетворення Ui: Ui = m + Ui.

2.Логнормальний розподіл

p(x)= exp , x>0, m>0, >0. (1.2.3)

Алгоритм У1.

  1. х=u (використовуючи А2).

  2. V=m exp((x).

Тут u – стандартне нормальне число.

  1. Експоненційний розподіл

p(x)=λ ( exp( - λx ), (λ>0, x>0. (1.2.4)

Алгоритм С1.

  1. = -(ln )/

Алгоритм С2

1. Одержати 1, 2, 3.

  1. s = ln (12) .

  2. V1= s , V2=(-1)s.

Алгоритм С3

  1. Одержати 1, 2, 3, 4, 5.

  2. Відсортувати (4, 5)( , ), причому 4< 5.

  3. s=ln(123) .

  4. x1= 4 , x2= - , x3=1- .

  5. V1=x1s, V2=x2s,V3=x3s.

Ефективність цих трьох алгоритмів залежить від співвідношення трудомісткості операцій ln(·) і одержання α; вона може бути визначена експериментально для кожної ЕОМ.

  1. Рівномірний розподіл

p(x)=1/(b - a), (1.2.5)

Алгоритм D1.

  1. =a+(b-a).

  1. Розподіл хі-квадрат

p(x)=x(v - 2)/2exp(-x2/2)/(2v/2Г(v/2)), x0, (1.2.6)

де v – позитивне ціле <<число ступенів волі>>.

Алгоритм Е1.

Для парних v: 1. Згенерувати 0, … , v/2-1...

2. V=-2ln(i).

Для непарних v: 1. Згенерувати 0, … , v/2-1...

2. V=-2ln( i)+u2, де u – нормально розподілене число.

  1. Гамма-розподіл

p(x)=(x/b)c-1exp(-x/b)/bГ(с), х0, (1.2.7)

де b – параметр масштабу (b>0); c – параметр форми (з>0).

Алгоритм F1.

  1. Константа (>0 (мале машинозалежне число, для якого обов'язково 1,0 - (< 1.0).

  2. v=[c] (ціла частина), з1= з – v, V1=0, V2=0.

  3. Якщо з1<, то перейти до п. 8; якщо 1-1з<, те v=v+1 і перейти до п. 8.

  4. Одержати v+1, v+2.

  5. s1= , s2= .

  6. s=s1+s2.

  7. Якщо s1>1, то перейти до п. 3.

  8. V2=-s1(ln v+3)/s.

  9. Одержати 1, …, v...

  10. V1=-ln(i).

  11. V=b (V1+V2).

  1. Бета-розподіл

p(x)=xv-1(1 – x)-1/B(v, ), x[0, 1], v>0, >0, (1.2.8)

де B(v, )= – бета функція.

Алгоритм G1.

  1. За допомогою алгоритму F1 одержимо V1 з параметрами b=1, c=v.

  2. За допомогою алгоритму F1 одержимо V2 з параметрами b=1, c=.

  3. = V1/(V1+V2).

Алгоритм G2.

  1. Одержати 1, 2.

  2. s1= , s2= .

  3. s=s1+s2, якщо s>1, перейти до п.1.

  4. =s1/s.

  1. Розподіл Вейбулла

p(x)=(cxc-1/bc)exp[-(x/b)c], c>0, b>0, x0. (1.2.9)

Алгоритм H1.

  1. W1=b(-ln )1/c.

  1. Розподіл Накагами

p(x)= mx2m-1exp(- x2),x>0, (1.2.10)

де m – параметр форми;  - параметр масштабу .

Алгоритм Q1.

  1. За допомогою алгоритму F1 одержати V з параметрами c=m, b=1.

  2. W= .

  1. Розподіл Райса

p(x)= exp(- )I0( ), x>0, (1.2.11)

де а – параметр <<нецентральності>> (а>0);  – параметр масштабу.

Алгоритм R1.

  1. Використовуючи А2, одержати U1, U2.

  2. R=(a+U1)2+(U2)2.

  1. Трикутний розподіл (Симпсона)

p(x)= (1.2.12)

Алгоритм S1.

  1. Одержати 1, 2..

  2. z1=a/2+1(b-a)/2, z2=a/2+2(b-a)/2.

  3. s=z1+z2.

  1. Розподіл Бернуллі

P{(=k}=kp+(1-k)q, k=0,1; q=1-p. (1.2.13)

Алгоритм X1.

  1. Одержати .

  2. Якщо <p, то =1; інакше =0.

  1. Біноміальний розподіл

P{=k}= , k=0,1,2, … ,n... (1.2.14)

Алгоритм Y1.

  1. V=, k=0, P1=qn.

  2. V=V-P1.

  3. Якщо V<0, перейти до п.6.

  4. P1=P1(n-k)p/(k+1)q.

  5. k=k+1, перейти до п.2.

  6. =k.

Алгоритм Y2.

    1. s=0, k=1.

    2. Одержати k.

    3. Якщо k<p, то s=s+1.

    4. k=k+1.

    5. Якщо kn, перейти до п.2.

    6. =s.

Алгоритм Y3(для малих р).

  1. k=0, L=0.

  2. Одержати k.

  3. L=L+(lnk/lnq+1), k=k+1.

  4. Якщо Ln, перейти до п.2.

  5. =k-1.