Главная страница

лаб 15. Лаб раб 15. Лабораторные работы


Скачать 0.6 Mb.
НазваниеЛабораторные работы
Анкорлаб 15
Дата22.09.2022
Размер0.6 Mb.
Формат файлаdocx
Имя файлаЛаб раб 15.docx
ТипДокументы
#690117
страница13 из 26
1   ...   9   10   11   12   13   14   15   16   ...   26

Конгруэнтный генератор со случайными параметрами


Еще один способ комбинирования двух генераторов G1, G2 заключается в том, что G1 изменяет параметры генератора G2 с течением времени. Проиллюстрируем это в случае, когда G2 линейный конгруэнтный генератор:

xt atxt1 bt mod N,

t1, 2, ...

(10)

где x0 A некоторое стартовое значение, а

a


t
At bB,

t 1, 2, ...
некоторая

t

псевдослучайная последовательность векторов, равномерно распределенных в B.

Доказано, что если |B| = 3, то наибольшее приближение распределения {xt} к равномерному достигается, если множество параметров Bимеет следующий вид:

3

B 0,

3

,

1

3

2 .





Проверка качества сгенерированной последовательности


Для проверки гипотезы о том, что сгенерированная последовательность подчиняется равномерному распределению, можно использовать критерий согласия χ2-Пирсона.

Сначала отрезок, содержащий числа, которые могут быть смоделированы, разбивают на Kинтервалов (интервалы обычно выбирают равной длины) и считают, сколько элементов последовательности, длина которой N, попадает в каждый интервал (i). Пусть M – максимально возможный элемент в последовательности длиной N, тогда если M < 10, то K = M, иначе K≈ 5∙lg N.

Затем вычисляют статистику критерия по формуле:

2




S* N

i1

i Pi

N ,

Pi

где Pi теоретическая вероятность попадания в i интервал (для равномерного распределения Pi= 1 / K, если интервалы равной длины).

Если вычисленная статистика S* больше критического значения статистики Sкрпри заданных степени свободы (r = K – 1) и уровне значимости (α = 0.05), то гипотеза отвергается, иначе нет оснований для отклонения проверяемой гипотезы.

Sкрможно взять из статистической таблицы (например, по адресу http://ami.nstu.ru/headrd/applied/xi_point.htm) или вычислить самостоятельно, используя какой-нибудь математический пакет. Например, в Maple 12 это можно сделать следующим образом:
with(Statistics):

alpha:=0.05; # Уровень значимости r:=9; # Степень свободы

S[kr]:=Quantile(ChiSquare(r),1-alpha); # Критическое значение статистики


1   ...   9   10   11   12   13   14   15   16   ...   26


написать администратору сайта