Составители:
Рубрика:
74
между плоскостями будет наибольшим, тогда критерием спектраль
ного теста будет являться расстояние между плоскостями d
n
при n
измерениях. Существует алгоритм TSTM4, входящий подпрограм
мой в TESTRAND, легко подсчитывающий это расстояние при раз
личных значениях коэффициентов (3.22). Очевидно, что при фикси
рованном n, чем меньше d
n
, тем лучше генератор. Критерий, приме
няемый в литературе, выглядит следующим образом: d
n
≤ 2
–30/n
,
в табл. 3.8 это значение приводится в зависимости от n.
Например, для генератора RANDU, широко применяемого в Рос
сии, при данных c = 0, a = 2
16
+ 3, m = 2
32
имеем: d
2
= 0.00002,
d
3
= 0.092, d
4
= d
5
= d
6
= d
7
= d
8
= d
9
= 0.093, т. е. этот генератор
соответствует спектральному тесту только для двумерного случая.
Кстати, генератор, используемый в GPSS/H, проходит спектраль
ный тест до n = 9.
Название «спектральный тест» пришло из теории распростране
ния волн, где наибольшее значение v
n
= 1/d
n
служило критерием наи
лучших условий распространения (а в нашем случае — случайности).
Все векторы чисел (U
i
, …, U
i+n–1
) лежат в n(мерном единичном кубе.
Наименьшее расстояние между двумя плоскостями этого куба равно
расстоянию от начального значения (0,0, …, 0,0) до (0,0, …, 0,1)
и вычисляется как
d
L
(n) = ((0 – 0)
2
+ (0 – 0)
2
+ … + (0 – 1)
2
)
0.5
= 1,
а наибольшее расстояние до (1, 1, …, 1,1) — из выражения
d
U
(n) = ((0 – 1)
2
+ … + (0 – 1)
2
)
0.5
=
n
.
Поскольку расстояние длиной l может быть разделено r плоско
стями на r – 1 равных промежутка длиною l/(r – 1), то отсюда следу
ет, что генератор номера плоскости (n!m)
1/n
будет иметь расстояние
между плоскостями, лежащее между
1/((n!m)
1/n
– 1) и
n
/((n!m)
1/n
– 1). (3.31)
Таблица 3.7. Значения произведения
n
23456789
m 2=
23
186293592665022021080684
Таблица 3.8. Зависимость d
n
от n
n
23456789
d
n
30000.0100.0500.0610.030.050.070.01.0