February 27th, 2004, 05:50 PM
C++ Random Number: What are good random number generators?
Q: What are good random number generators?
A: There are two common problems when using pseudo-random number generators (PRNGs):
- The PRNG does not get seeded. Please see related FAQ for discussion on this topic.
- A poor PRNG is being used.
This FAQ addresses the second problem.
Often people use the C library function 'rand()' for random number generation. And quite often, the implementation for 'rand()' is not very good - the range of numbers is too small, the period before repetition is too small, and/or other problems.
Better PRNGs can be found in a variety of sources. The most popular is the "Mersenne Twister". The "Mersenne Twister" and other good PNRGs can be found in the Boost library and the GNU Scientific Library).
Another good resource on random number generation is the book "Numerical Recipes in C". It contains a very good discussion on how one can create different distributions based on a uniform random deviate.
Last edited by Andreas Masur; July 24th, 2005 at 05:48 AM.
Click Here to Expand Forum to Full Width