Процедуры генерации последовательностей псевдослучайных чисел
Одной из исторически первых процедур получения последовательностей псевдослучайных чисел была процедура, получившая название метода серединных квадратов. Пусть имеется 2n-разрядное число, меньшее единицы: xi=0,a1a2…a2n. Возведем его в квадрат: xi2=0,b1b2…b4n, а затем отберем средние 2n разрядов xi+1=0,bn+1bn+2…b3n, которые и будут являться очередным числом псевдослучайной последовательности. Недостаток данного метода – наличие корреляции между числами последовательности, а в ряде случаев случайность может вообще отсутствовать.
Широкое применение при моделировании систем на ЭВМ получили конгруэнтные процедуры генерации псевдослучайных последовательностей, представляющие собой арифметические операции, в основе которых лежит понятие конгруэнтности. Два целых числа a и b конгруэнтны (сравнимы) по модулю m, где m – целое число, тогда и только тогда, когда существует такое целое число k, что a – b = km, т.е. если разность чисел a и b делится на m и если числа a и bдают одинаковые остатки от деления на абсолютную величину числа m. Конгруэнтные процедуры являются чисто детерминированными, т.к. описываются в виде рекуррентного соотношения:
Xi = li X0 + (li - 1) m / (l - 1) (mod M),
где Xi, l, m, M – неотрицательные целые числа. Если заданы начальное значение X0, множитель l и аддитивная константа m, то данное соотношение однозначно определяет последовательность целых чисел {Xi}, составленную из остатков деления на M членов последовательности {li X0 + (li - 1) m / (l - 1)}. Таким образом, по целым числам последовательности {Xi} можно построить последовательность {xi} = {Xi / M} рациональных чисел из интервала (0, 1).
Дата добавления: 2015-08-21; просмотров: 892;