C++11 introduces several pseudo-random number generators designed to replace the good-old rand
from the C standard library. I’ll show basic usage examples of std::mt19937
, which provides a random number generation based on Mersenne Twister algorithm. Using the Mersenne Twister implementation that comes with C++1 has advantage over rand()
, among them:
mt19937
has much longer period than that ofrand
, e.g. it will take its random sequence much longer to repeat itself.- It much better statistical behavior.
- Several different random number generator engines can be initiated simultaneously with different seed, compared with the single “global” seed
srand()
provides.
The downside is that mt19937
is a bit less straight-forward to use. However, I hope this post will help with this point :-).
Continue reading C++ : mt19937
Example