Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Robust Random Number Generation [closed]

Tags:

c++

c#

random

For C++, Boost.Random is probably what you're looking for. It has support for MT (among many other algorithms), and can collect entropy via the nondet_random class. Check it out! :-)


The Gnu Scientific Library (GSL) has a pretty extensive set of RN generators, test harness, etc. If you're on linux, it's probably already available on your system.


Watch out for the Gnu Scientific Library. It's licensed under the GPL rather than LGPL.

As other folks mentioned, the Boost random classes are a good start. Their implementation conforms to the PRNG code slated for TR1:

http://www.boost.org/doc/libs/1_35_0/libs/random/index.html http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1452.html

If you have a recent version of the G++ compiler, you may find the TR1 libraries already included


C++11 has adopted a robust random number library based on boost.random. You can access a number of random number engines using different algorithms to meet your quality, speed, or size requirements. Quality implementations will even provide access to whatever non-deterministic RNG your platform offers via std::random_device.

In addition there are many adaptors to produce specific distributions, eliminating the need to do such manipulation by hand (something often done incorrectly).

#include <random>


Boost.Random is my first choice for RNG

http://www.boost.org/doc/libs/random