Теоретическая часть. Хороший арифметический генератор случайных чисел должен обладать следующими свойствами

Хороший арифметический генератор случайных чисел должен обладать следующими свойствами:

1) Получаемые числа должны быть равномерно распределены в интервале [0,1] и не должны иметь корреляции друг с другом, в противном случае результаты моделирования могут оказаться полностью недействительными.

2) Чтобы генератор можно было использовать на практике, он должен обладать быстродействием и не требовать больших затрат памяти.

3) Генератор должен обеспечивать возможность точно воспроизводить заданный поток случайных чисел.

4) В генераторе должен быть предусмотрен простой способ получения отдельных потоков случайных чисел. Поток — это просто часть последовательности случайных чисел, производимых генератором, очередной поток начинается в том месте, где заканчивается предыдущий.

Одной из исторически первых процедур получения псевдослучайных чисел была процедура, получившая название метода серединных квадратов, который был предложен фон Нейманом и Метрополисом в 1940-х годах.

Алгоритм получения последовательности случайных чисел методом серединных квадратов сводится к следующему:

Пусть имеется 2n - разрядное число, меньше 1:

 
 


возведем его в квадрат:

,

а затем возьмем средние 2n разрядов:

,

которые и будут очередным числом.

Например:

     
 
 
 
 
 


и т.д.

Недостатком этого метода является наличие корреляции между числами последовательности, а в ряде случаев случайность вообще может отсутствовать.

Например:

   
 
 
 


Метод срединных квадратов вовсе не является случайным, то есть непредсказуемым (это наиболее существенный его недостаток). На самом деле, если мы знаем одно число, следующее число является полностью предопределенным, по­скольку правило его получения неизменно. Фактически, когда задается x0, предопределяется вся последовательность чисел xi. Это замечание касается всех арифметических генераторов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: