Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Математика    >>    randas
   
 
 RandAs - Pseudo Random Generators  В.М.Ульянов 06.01.1998

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



18k 
 

<< 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 из заданного файла. Для загрузки из стандартного файла вместо имени файла можно указать пустую строку. Автоматическая инициализация не выполняет- ся. AsIni(R)