Namespaces
Variants

std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>:: seed

From cppreference.net

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 .
2) Сразу после установки состояния, * this == std:: mersenne_twister_engine ( seq ) является 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