logo
Коды и шифры

М13. Получение псевдослучайных чисел

В типовом приложении, например в таком, где требуются случайные числа, равномерно распределенные в интервале [0,1], целые числа, порождаемые рекуррентой, делятся на значение модуля. Если действовать таким образом в примере 8.4, то 16 приведенных в нем целых чисел необходимо разделить на 17. В результате получатся следующие 16 псевдослучайных значений (получаем два знака после запятой):

0.29, 0.12, 0.59, 0.00, 0.24, 0.94, 0.06, 0.41, 0.47, 0.65, 0.18, 0.76,

0.53, 0.82, 0.71, 0.35.

В задачах реального масштаба для получения менее предсказуемого множества значений модуль надо брать очень большим и, что еще лучше, необходимо использовать несколько линейных рекуррент, комбинируя каким-либо образом снимаемые с них последовательности. Практическое обсуждение этих вопросов, возможные наборы значений для модуля, множителя и приращения, а также полезные компьютерные программы можно найти в главе 7 работы [8.4].