Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ЛР по ТВИМС.doc
Скачиваний:
17
Добавлен:
31.08.2019
Размер:
1.89 Mб
Скачать

3.Исследование датчиков псевдослучайных чисел

3.1 Генерация псевдослучайных чисел

Псевдослучайными называются числа, последовательность которых вычисляется на основе некоторого алгоритма так, чтобы любые совокупности, выбранные из нее, отвечали статистическим тестам на случайность. Эти числа могут интерпретироваться как случайные выборки, полученные путем независимых наблюдений случайных величин, закон распределения которых определяется алгоритмом их генерации. При этом, естественно, генерируемые выборки должны выдерживать статистические проверки на согласие их эмпирического распределения с заложенными в алгоритме генерации.

В дальнейшем, для простоты изложения, будем псевдослучайные выборки называть случайными. Такое отождествление часто используется практиками.

Генерация случайных чисел с заданными распределением, как правило, осуществляется в два этапа: 1 – генерация равномерно распределенных чисел; 2 – преобразование равномерно распределенной выборки в выборку с заданным распределением.

Ниже излагается наиболее распространенные алгоритмы генерации, а также тесты, с помощью которых оценивается «качество» получаемых чисел.

3.1.1 Генерация равномерных чисел

Существует достаточно много алгоритмов генерации равномерно распределенных случайных чисел. Результаты их использования различаются «качеством равномерности» и длиной цикла (длиной последовательности без повторяющихся чисел).

Обычно генерируются числа, являющиеся результатом реализации случайной величины X, равномерно распределенной в интервале [0,1]. Математическое ожидание этой величины равно 0,5 , а дисперсия 1/12. Переход к случайным числам, равномерно распределенным в произвольном интервале [a,b], осуществляется путем умножения на длину интервала [a.b]: y=x · ( b – a ). При этом y равномерно распределено на интервале [a,b]

и .

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

Приведем краткие сведения о датчиках случайных чисел. Наиболее простой алгоритм генерации случайных чисел известен под названием метода «середины квадрата». Имеем некоторое k-значное число и возводим его в квадрат. В результате получаем 2k-значное число, средние k чисел которого, в свою очередь возводим в квадрат и т.д. Полученная последовательность k-значных чисел рассматривается как случайная выборка. Если эти числа нормировать по модулю единицей, то будем иметь случайную выборку равномерно распределенных чисел от нуля до 1, в основном отвечающую статистическим тестам на случайность. Метод прост, однако детальное тестирование выявляет заметное отклонения сгенерированной последовательности от случайной.

Большинство современных датчиков равномерно распределенных чисел основаны на использовании линейной конгруэнтной последовательности вида:

n≥0

или в другой форме записи:

где x0 – начальное значение (x0 ≥ 0); a – множитель (a ≥ 0); c – приращение (c ≥ 0); m – модуль (m > x0, a, c); [U] – целая часть числа U.

При проектировании и тестировании датчиков особое внимание следует уделить обеспечении. следующих свойств : случайность, независимость элементов выборки, соответствие заданному закону распределения, большая продолжительность цикла.

Последнее требование связано с тем, что если в генерируемой последовательности встречается число, уже ранее имевшееся, то начиная с него, последовательность будет автоматически повторяться. Такая цикличность неизбежна (в силу конечности модуля m), но бороться с ней можно , формируя алгоритм так , чтобы период (длина цикла) была возможно продолжительнее, и помимо того, ведя контроль за повторением чисел с тем, чтобы в каждом таком случае переходить на новые числа.

На использовании конгруэнтных последовательностей основан датчик URAND, достаточно распространенный в математическом обеспечении ПЭВМ.