Генератор равномерных случайных величин по технологии полного вихревого массива
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2017. № 2
105
for (int n = 0; n < nwN; n++)
{ int z = CT.Next();
cX[z]++; // счетчик случайной величины
}
int count16 = 0; // количество 16-тикратных величин
for (int i = 0; i < CT.N; i++)
if (cX[i] == 16) count16++; // 16-тикратные
Console.WriteLine("count16 = {0} ", count16);
Console.ReadKey(); // просмотр результата
}
}
}
После выполнения программы на мониторе появляется следующий резуль-
тат:
w = 16 N = 65566 nwN = 1048576
count16 = 65536
Задача тестирования завершена, хотя исследование вихревого генератора
требует специальных ресурсов, таких как мощные процессоры, дополнительная
оперативная память, устройства внешней памяти и др. Однако принципы ве-
рификации остаются прежними.
Заключение.
Первоначально авторы настоящей работы исходили из того
факта, что конгруэнтный способ генерации случайных величин не может дать
равномерное распределение для всех конгруэнтных констант и начальных значе-
ний по линейной конгруэнтной функции
(
)
1
.
i
i
x
ax c mod m
+
= +
Однако результат
может получиться равномерным, если рассматривать полные последовательности
со случайными величинами в количестве
N
=
m
.
В этом случае последовательно-
сти становятся полными с равномерным однократным распределением генериру-
емых случайных величин. Ради увеличения скорости вычислений операцию моду-
ля
mod
на полных последовательностях можно заменить на битовую конъюнкцию
& с маской, содержащей
2
log
w N
=
битовых единиц. Вводя кольцевой перенос
старшей битовой единицы при реализации левого глобального вихря, удалось по-
лучить
w N
⋅
уникальных последовательностей, содержащих
N
неповторяющихся
однократно равномерных случайных величин. При этом экспериментально с по-
мощью матричной диагностики было выявлено, что всевозможное сочетание пар
конгруэнтных констант
a
и
c
учитывает всевозможное задание исходных началь-
ных величин
x
0
. Эти фундаментальные свойства позволили перейти к реализации
настройки вихревых генераторов, указывая диапазоны конгруэнтных констант.
Максимальный диапазон констант на полных последовательностях обеспечивает
максимально возможную по количеству генерацию вихревых последовательно-
стей и вихревых случайных величин. Приведенная конструкция вихревого генера-
тора на основе исходного конгруэнтного массива обеспечивает равномерность
создаваемых полных последовательностей случайных величин. Это может быть
достаточно полезно для многих приложений, и в первую очередь для задач в таких
областях, как информационные технологии, криптография, инженерное проекти-
рование, биология, медицина и др.