> -- Иван Денисов писал(а):
> Для простых задач обычно достаточно ObxRandom.Наиболее разнообразная реализация генераторов опубликована у Хельмута.
Что такое "простые задачи" - сложно формализовать. Некоторые весьма "злобные" статистические тесты основаны на сортировке массива псевдослучайных чисел. Думаю, что в качестве генераторов общего назначения следует использовать криптографически стойкие генераторы с периодом не менее 2^{64}. Всё равно они по производительности и сложности реализации сопоставимы с вихрем Мерсенна. А отказ от криптостойкости нужно специально обосновывать. Даже если использовать примитивные алгоритмы на 5-10 строчек, непригодные для шифрования, то они:
1) Должны проходить SmallCrush, Crush и BigCrush из TestU01.
2) Должны проходить PractRand 0.94 на выборке 32 терабайта.
Ни minstd из ObxRandom, ни даже вихрь Мерсенна им не удовлетворяют.

Вот заметка с более подробным обоснованием использования криптографических алгоритмов как генераторов псевдослучайных чисел общего назначения:
https://sortingsearching.com/2023/11/25/random.html

> -- comdiv писал(а):
> Для этой задачи полностью подходит простейший линейный конгруэнтный метод
Его не так просто реализовать на Обероне, т.к. нужно умножать 128-битное число на 64-битное и возвращать старшие 32 бита результата. А линейные конгруэнтные генераторы с состоянием короче 128 бит - это скорее игрушки, чем рабочие инструменты.