## Random Numbers

**numerics4j** provides the means to generate random, floating-point numbers uniformly distributed between 0 and 1. Along with this basic functionality, **numerics4j** provides the means to generate random variables from many statistical distributions.

### RNG

The core of **numerics4j** random number generating capabilities is
centered around the RNG
interface. This defines the interface for all the random number
generators that produce random, floating-point numbers uniformly
distributed between 0 and 1. The following core random number
generators are provided by **numerics4j**:

Generator | Description |
---|---|

LinearCongruentialRNG | Generic linear congruential generator that can be constructed with arbitary modulus, multiplier, and shift parameters. |

MathRNG | Simple random number generator that delegates random number production to the java.lang.Math#random() method. |

RandomRNG | Simple random number generator that delegates random number production to a java.util.Random object. |

### Random Variables

**numerics4j** has the capability to generate random variables from
many statistical distributions using standard techniques and
algorithms. These techniques rely on a RNG instance as a
source for random, floating-point numbers uniformly distributed
between 0 and 1. Any RNG implementation can be utilized
by the random variables include custom developed implementations. By
default, an instance of RandomRNG is utilized. The
following core random variable generators are provided by **numerics4j**:

Distribution | Class | Parameters |
---|---|---|

Bernoulli | BernoulliRandomVariable | probability of success |

Beta | BetaRandomVariable | alpha beta |

Binomial | BinomialRandomVariable | number of trials probability of success |

Cauchy | CauchyRandomVariable | location scale |

Chi-Squared | ChiSquaredRandomVariable | degrees of freedom |

Exponential | ExponentialRandomVariable | mean |

F | FRandomVariable | numerator degrees of freedom denominator degrees of freedom |

Gamma | GammaRandomVariable | alpha beta |

Geometric | GeometricRandomVariable | probability of success |

Laplace | LaplaceRandomVariable | mean scale |

Logistic | LogisticRandomVariable | mean scale |

Log Normal | LogNormalRandomVariable | mean standard deviation |

Negative Binomial | NegativeBinomialRandomVariable | number of successes probability of success |

Normal | NormalRandomVariable | mean standard deviation |

Poisson | PoissonRandomVariable | mean |

Rayleigh | RayleighRandomVariable | scale |

t | TRandomVariable | degrees of freedom |

Uniform | UniformRandomVariable | lower bound upper bound |

Weibull | WeibullRandomVariable | shape scale location |