Package org.uncommons.maths.random
package org.uncommons.maths.random
This package provides deterministic, repeatable, pseudo-random number generators, a set of strategies for seeding them, and classes for generating values from different probability distributions.
-
ClassDescriptionNon-linear random number generator based on the AES block cipher in counter mode.Trivial key implementation for use with AES cipher.Discrete random sequence that follows a binomial distribution.Java port of the cellular automaton pseudorandom number generator developed by Tony Pasqualoni.A Java version of George Marsaglia's Complementary Multiply With Carry (CMWC) RNG.Continuous, uniformly distributed random sequence.Seed generator that maintains multiple strategies for seed generation and will delegate to the best one available for the current operating environment.RNG seed strategy that gets data from /dev/random on systems that provide it (e.g.Utility to generate an input file for the DIEHARD suite of statistical tests for random number generators.Discrete, uniformly distributed random sequence.Continuous random sequence that follows an exponential distribution.Normally distributed random sequence.This is the default
JDK RNG
extended to implement theRepeatableRNG
interface (for consistency with the other RNGs in this package).Random number generator based on the Mersenne Twister algorithm developed by Makoto Matsumoto and Takuji Nishimura.Discrete random sequence that follows a Poisson distribution.Immutable value type for probabilities.Connects to the random.org website (via HTTPS) and downloads a set of random bits to use as seed data.Deterministic random number generators are repeatable, which can prove useful for testing and validation.SeedGenerator
implementation that uses Java's bundledSecureRandom
RNG to generate random seed data.Exception thrown bySeedGenerator
implementations when they are unable to generate a new seed for an RNG.Strategy interface for seeding random number generators.Very fast pseudo random number generator.