Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Seeds the engine
void seed(UIntType x0 = default_seed);
template<class Gen>
void seed(Gen& gen);
Parameters
x0
The seed value.Gen
The type of the seed generator.gen
The seed generator.
Remarks
The first seed function sets the stored value stored_value to 1 mod M if c mod M == 0 and x0 mod M == 0, otherwise it sets the stored value to x0 mod M. The second seed function calls seed(gen()).
Example
// std_tr1__random__linear_congruential_seed.cpp
// compile with: /EHsc
#include <random>
#include <iostream>
typedef std::mt19937 Myeng;
typedef std::linear_congruential<int, 16807, 0,
(int)((1U << 31) - 1)> Myceng; // same as minstd_rand0
int main()
{
Myeng eng;
Myceng ceng;
Myceng::result_type compval = ceng();
compval = compval; // to quiet "unused" warnings
std::cout << "A == " << Myceng::multiplier << std::endl;
std::cout << "C == " << Myceng::increment << std::endl;
std::cout << "M == " << Myceng::modulus << std::endl;
std::cout << "min == " << ceng.min() << std::endl;
std::cout << "max == " << ceng.max() << std::endl;
ceng.seed(); // reseed base engine
std::cout << "a random value == " << ceng() << std::endl;
std::cout << "a random value == " << ceng() << std::endl;
std::cout << "a random value == " << ceng() << std::endl;
Myceng ceng2(eng); // construct with generator
ceng2.seed(eng); // seed with generator
return (0);
}
A == 16807 C == 0 M == 2147483647 min == 1 max == 2147483646 a random value == 16807 a random value == 282475249 a random value == 1622650073
Requirements
Header: <random>
Namespace: std