Generating random numbers and choosing the right random number engine
In order to get random numbers for whatever purpose, C++ programmers usually basically used the rand()
function of the C library before C++11. Since C++11, there has been a whole suite of random number generators that serve different purposes and have different characteristics.
These generators are not completely self-explanatory, so we will have a look at all of them in this recipe. In the end, we will see in what ways they differ, how to choose the right one, and that we will most probably never use all of them.
How to do it...
We will implement a procedure that prints a nice illustrating histogram of the numbers a random generator produces. Then, we will run all STL random number generator engines through this procedure and learn from the results. This program contains many repetitive lines, so it might be advantageous to just copy the source code from the code repository accompanying this book on the Internet instead...