РЕАЛИЗАЦИЯ И ИССЛЕДОВАНИЕ ГЕНЕРАТОРА СЛУЧАЙНЫХ ЧИСЕЛ НА ОСНОВЕ ПАРАЛЛЕЛЬНОГО ПЕРЕМЕШИВАНИЯ
Аннотация
Использование генераторов случайных чисел находит широкое распространение. Программные генераторы как правило выдают псевдослучайные числа. Для улучшения ха- рактеристик, необходим источник “хаоса”. В данной статье рассматривается реализа- ция генератора случайных чисел, использующего идею перемешивания полного набора чисел в параллельном потоке. На работу процессора в таком режиме оказывают влияние мно- жество случайных факторов, что позволяет выдавать случайные числа. У предложенного генератора каждое последующее число не зависит от предыдущего. Генератор может выдать любое число заданного диапазона, несмотря на то сколько и какие числа выпадали ранее. В том числе может выпасть с малой вероятностью одно и тоже число несколько раз подряд. Отсутствует заранее определенная последовательность выдачи случайных чисел. Период, свойственный программным генераторам псевдослучайных чисел, также отсутствует. Но при этом снижается быстродействие выдачи случайных чисел, в срав- нении с программными генераторами псевдослучайных чисел. Целью исследования было оценить свойства предложенного генератора, в первую очередь статистические характе- ристики генерируемых чисел. В статье рассмотрены вопросы идеи параллельного переме- шивания. Вопросы реализации на языке программирования. Представлен программный ин- терфейс класса MixRandomBase и особенности реализации класса MixRandomByte, исполь- зующего рабочий массив из байтов. Для проверки качества работы генераторов случайных и псевдослучайных чисел применяют различные тесты. Приведены результаты проверки работы генератора такими тестами как распределение на плоскости, тест равномерно- сти, тест “стопка книг”. Результаты тестирования позволяют судить о хороших ста- тистических характеристиках разработанного генератора. Оценено быстродействие генератора. В сравнении с линейными конгруэнтными генераторами псевдослучайных чи- сел время выдачи последовательности чисел больше в сотни раз.








