![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Class template mersenne_twister_engineBoost , The Boost C++ Libraries BoostBook Documentation Subset , Reference
|
![]() |
Note |
---|---|
Вариант ускорения был реализован с нуля и не вытекает из или не использует mt19937.c, представленный на вышеупомянутом сайте WWW. Тем не менее, было подтверждено, что оба продукта производят одинаковые результаты. |
Посев из целого числа был изменен в апреле 2005 года для устранения слабости.
Качество генератора в решающей степени зависит от выбора параметров. Пользовательский код должен использовать один из разумно параметризованных генераторов, таких как mt19937.
Генератор требует значительных объемов памяти для хранения своего массива состояний. Например, mt11213b требует около 1408 байт, а mt19937 требует около 2496 байт.
mersenne_twister_engine
public
construct/copy/destructmersenne_twister_engine;
Создает
и вызывает mersenne_twister_engine
seed()
.
explicitmersenne_twister_engine(UIntTypeзначение);
Создает
и вызывает mersenne_twister_engine
seed(значение)
.
template<typenameIt>mersenne_twister_engine(It ,It Last;
templatetypename SeedSeq>explicitmersenne_twister_engine& seq;
Constructs a mersenne_twister_engine
.
Конструктор копий всегда предпочтительнее шаблонного конструктора.
mersenne_twister_engine
public member functionsvoid seed();
Звонки seed(default_seed)
.
void seed(UIntType значение);
Устанавливает состояние x(0) на v mod 2w. Затем, итеративно, устанавливает x(i) на (i + f* (x(i-1) xor (x(i-1) rshift w-2))) мод 2w для i = 1 .. n-1. x(n) является первым значением, которое возвращается оператором().
templatetypename SeeqSeq> voidseed(SeeqSeq & seq;
Семена mersenne_twister_engine
с использованием значений, полученных seq.generate().
templatetypenameIt>voidseed(It & first,It last);
Устанавливает состояние генератора с использованием значений из диапазона итераторов.
result_type оператор();
Создает следующее значение генератора.
templatetypename Iter> voidgenerate(Iter first, Iter last;
Заполняет диапазон случайными значениями
void discard(boost::uintmax_t z);
Увеличивает состояние генератора на шагах z
. Эквивалент
для (неподписанныйдлинный длинный i; i;z;;
mersenne_twister_engine
friend functionstemplate CharT, TraitsCharT>, операторBasic_ostream, > os, const &mersenne_twister_engineWrites a mersenne_twister_engine:73>std::76>
template CharT,typenameTraitsBasic_istream>операторBasic_istream< >> mersenne_twister_enginemersenne_twister_engine из
std:74>
friend boolоператор(const mersenne_twister_engine , constmersenne_twister_engine & y_;
Вернется истинным, если два генератора находятся в одном и том же состоянии и, таким образом, будут производить идентичные последовательности.
friend boolоператор!=const mersenne_twister_engine , constmersenne_twister_engine &;
Возвращается верно, если два генератора находятся в разных состояниях.
Статья Class template mersenne_twister_engine раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |