ASL
Random Class Reference

Detailed Description

A random number generator.

Generates uniformly distributed pseudo-random numbers, except in the normal() functions.

Random random;
int n = random(255); // get an integer between 0 and 255
double x = random(-1.5, 1.5); // get a number between -1.5 and +1.5
double y = random.normal(10, 0.75); // get a number from a normal distribution
double normal()
Returns a floating point random number with standard normal distribution.
Definition: defs.h:303

The generator initially is seeded pseudorandomly. If you need a constant sequence you can create with a false argument, to prevent this or call seed().

For compatibility with older code, there is a global asl::random object already random initialized ready for use. But it is recommended to use new Random objects when separate sequences or multithreading are needed.

#include <defs.h>

Public Member Functions

unsigned get ()
 Returns an integer pseudo-random number in the [0, 2^32-1] interval.
 
double operator() (double m)
 Returns a floating point random number in the [0, m] interval.
 
double operator() (double m, double M)
 Returns a floating point random number in the [m, M] interval.
 
float operator() (float m)
 Returns a floating point random number in the [0, M] interval.
 
float operator() (float m, float M)
 Returns a floating point random number in the [m, M] interval.
 
template<class T >
operator() (T m)
 Returns an integer random number in the [0, M] interval.
 
template<class T >
operator() (T m, T M)
 Returns an integer random number in the [m, M] interval.
 
double normal ()
 Returns a floating point random number with standard normal distribution.
 
double normal (double m, double s)
 Returns a floating point random number with normal distribution with given mean and standard deviation.
 
float normal (float m, float s)
 Returns a floating point random number with normal distribution with given mean and standard deviation.
 
bool coin (double p=0.5)
 Returns true or false given a probability (by default it is 0.5, like flipping a coin)
 
void seed (ULong s)
 Initializes the seed for the random functions.
 
void init (bool fast=true)
 Initializes the seed for the random functions randomly (set fast=false for a high quality random seed)
 
template<typename T >
void shuffle (T *a, int n)
 Shuffles an array of elements in place (n items starting at a).
 
template<typename E >
void shuffle (E &a)
 Shuffles an array of elements in place.
 

Static Public Member Functions

static void getBytes (void *buffer, int n)
 Fills a buffer with OS-provided random bytes or pseudo-random if that fails.
 

The documentation for this class was generated from the following file: