std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>:: seed
From ru.cppreference.net
<
cpp
|
numeric
|
random
|
mersenne twister engine
|
void
seed
(
result_type value
=
default_seed
)
;
|
(1) | (начиная с C++11) |
|
template
<
class
SeedSeq
>
void seed ( SeedSeq & seq ) ; |
(2) | (начиная с C++11) |
Устанавливает состояние генератора псевдослучайных чисел.
1)
Сразу после установки состояния,
*
this
==
std::
mersenne_twister_engine
(
value
)
является
true
.
Содержание |
Параметры
| value | - | начальное значение для установки состояния |
| seq | - | последовательность начальных значений для установки состояния |
Исключения
2)
Если
SeedSeq
не является
std::seed_seq
, выбрасывает исключения, вызванные вызовом
seq.generate
.
Сложность
1)
То же, что и
std::
mersenne_twister_engine
(
value
)
.
2)
То же, что и
std::
mersenne_twister_engine
(
seq
)
.
Отчеты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2181 | C++11 |
перегрузка
(
2
)
не генерировала исключение, даже если вызов
seq.generate
генерирует исключение
|
пробрасывает исключение |
Смотрите также
|
конструирует движок
(public member function) |
Пример
Запустить этот код
#include <iostream> #include <random> int main() { std::mt19937 gen; // Инициализируем генератор беззнаковым целым числом gen.seed(1); std::cout << "after seed by 1: " << gen() << '\n'; // Инициализируем генератор двумя беззнаковыми целыми числами std::seed_seq sseq{1, 2}; gen.seed(sseq); std::cout << "after seed by {1,2}: " << gen() << '\n'; }
Возможный вывод:
after seed by 1: 1791095845
after seed by {1,2}: 3127717181