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 random number generation based on the Mersenne Twister algorithm. Using the Mersenne Twister implementation that comes with C++11 has advantages over rand(), including:
mt19937has a much longer period thanrand, e.g. it will take much longer for its random sequence to repeat itself.- It has much better statistical behavior.
- Several different random number generator engines can be initialized simultaneously with different seeds, compared with the single “global” seed
srand()provides.
The downside is that mt19937 is a bit less straightforward to use. However, I hope this post will help with that point :-).
Continue reading C++: mt19937 Example