"Improving a poor random number generator", Carter Bays and S.D. Durham, ACM Transactions on Mathematical Software, Vol 2, No. 1, March 1976, pp. http://doi.acm.org/10.1145/355666.355670<1
Выход генератора базы буферизуется в массиве длины k. Каждый вывод X(n) имеет вторую роль: Он дает индекс в массив, где будет извлечен X(n+1). Используемые элементы массива заменяются свежим выходом из базового генератора.
Параметрами шаблона являются базовый генератор и длина матрицы k, которая должна быть около 100.
shuffle_order_engine
public
construct/copy/destruct
shuffle_order_engine;
Создает shuffle_order_engine, вызывая по умолчанию конструктор базового генератора.
Сложность: ровно k+1 вызовы базового генератора.
explicitshuffle_order_engine(result_type s);
Создает конструктор shuffle_output_engine, используя семенной параметр.
Вернется верно, если два генератора будут производить разные последовательности.
Статья Class template shuffle_order_engine раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.