Random Number Generators
- Sis a finite set of states (the state space)
- μis a probability distribution on S for the initial state (or seed)s0
- f:S→Sis the transition function
- U– a finite set of output symbols
- g∶S→Uan output function
- Generate the initial state (called the seed)s0according toμand computeu0=g(s0).
- Iterate for and . Output values are the so-called random numbers produced by the PRNG.
- Generating imitations of independent and identically distributed (i.i.d.) random variables having the uniform distribution over the interval (0, 1)
- Applying transformations to these i.i.d. U(0, 1) random variates in order to generate (or imitate) random variates and random vectors from arbitrary distributions.
- Engines (Basic random number generators) classes, which hold the state of the generator and is a source of i.i.d. random variables.
- Transformation classes for different types of statistical distributions, for example, uniform, normal (Gaussian), binomial, etc. These classes contain all of the distribution’s parameters (including generation method).
- Generate function. The current routine is used to obtain random numbers from a given engine with proper statistics defined by a given distribution.
- Service routines to modify the engine state: skip ahead and leapfrog functions.