Скачать RandAs - Pseudo Random Generators

06.01.1998
Скачать файл (20,13 Кб)





RANDAS

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

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

С логической точки зрения модуль содержит два генератора псевдослучайных чисел, работающих независимо. Один из них далее будет обозначаться AS, другой - MM.

Генератор AS использует линейный конгруэнтный метод с параметрами, подобранными с помощью спектрального теста, и обеспечивает большой период (1099511627776 для модулей Rnd51Fnc, Rnd52Fnc и Rnd54Fnc; 281474976710656 для модулей Rnd61Fnc, Rnd62Fnc и Rnd64Fnc; в каждой из групп модулей генерируется одна и та же последовательность). С этим генератором связаны псевдослучайные функции RandAs и RandRe, а также об- служивающие его процедуры AsIn, AsIni и AsOut.

Генератор MM использует линейный конгруэнтный метод, дополненный методом Макларена - Марсальи, и обеспечивает высокую степень независимости порождаемых чисел, что позволяет использовать его для моделирова- ния последовательности независимых испытаний и в расчетах методом Монте Карло с высоким разрешением. Период генерируемой последовательности очень велик (во всех шести модулях порождаются различные последовательности). С этим генератором связаны псевдослучайные функции RandEx, RandMM и RandRM, а также обслуживающие его процедуры MMIn, MMIni и MMOut. Кроме того, пользователю доступен код ошибки RndErr, вырабатываемый процедурами AsIn, AsOut, MMIn и MMOut. Для распаковки кода ошибки можно использовать процедуру UnpackRndErr.

Процедуры инициализации и сохранения состояния.

AsIn('имя файла') - загрузка начального состояния генератора AS из заданного файла. Для загрузки из стандартного файла вместо имени файла можно указать пустую строку (оператор AsIn('') выполняется автоматически при запуске программы).

MMIn('имя файла') - загрузка начального состояния генератора MM из заданного файла. Для загрузки из стандартного файла вместо имени файла можно указать пустую строку. Автоматическая инициализация не выполняет- ся.