#include <random>
#include <iostream>
#include <vector>
#include <ctime>
std::vector<unsigned> good_randVec()
{
static std::uniform_int_distribution<unsigned> u(0, 9);
static std::default_random_engine e;
std::vector<unsigned> ret;
for (std::size_t i = 0; i < 100; ++i) {
ret.push_back(u(e));
}
return ret;
}
int main()
{
std::uniform_int_distribution<unsigned> u(0, 9);
std::default_random_engine e;
for (std::size_t i = 0; i < 10; ++i) {
std::cout << u(e) << " ";
}
std::cout << "\n";
std::cout << "min: " << e.min() << " max: " << e.max() << std::endl;
std::vector<unsigned> v1(good_randVec());
std::vector<unsigned> v2(good_randVec());
std::cout << ((v1 == v2) ? "equal" : "not equal") << std::endl;
std::default_random_engine e1;
std::default_random_engine e2(2147483646);
std::default_random_engine e3;
e3.seed(32767);
std::default_random_engine e4(32767);
for (std::size_t i = 0; i != 100; ++i) {
if (e1() == e2()) {
std::cout << "unseeded match at iterationi: " << i
<< std::endl;
}
if (e3() != e4()) {
std::cout << "seeded differs at iteration: " << i
<< std::endl;
}
}
std::default_random_engine e5(std::time(nullptr));
for (std::size_t i = 0; i < 10; ++i) {
std::cout << e5() << " " ;
}
std::cout << std::endl;
return 0;
}