++ 11 std::random_device , . , , . lib++ /dev/urandom . libstd++ , _GLIBCXX_USE_RANDOM_TR1 . Visual Studio, , . edit: VS2012 Windows.
std::random_device (/dev/urandom PRNG), .
#include <random>
int main() {
std::random_device r;
std::seed_seq seed{r(), r(), r(), r(), r(), r(), r(), r()};
std::mt19937 engine(seed);
}
, , . , . , , , .
std::random_device r;
std::vector<std::mt19937> engines;
int engines = 50;
for (int i = 0; i < engines; ++i) {
std::seed_seq s{r(), r(), r(), r(), r(), r(), r(), r()};
engines.emplace_back(s);
}
32- , 256 , , , . , .
, mt19937 mt19937::state_size (624) 32- . , , , , .
std::random_device r;
std::vector<std::uint_least32_t> data;
std::generate_n(back_inserter(data), 624, std::ref(r));
std::seed_seq seed(begin(data), end(data));
std::mt19937 engine(seed);