Random number generators for various probability distributions.
Useful for generating synthetic data, jittering points, and Monte Carlo simulations.
Examples
# Uniform random in range [0, 100]
Visualize.Random.uniform(0, 100)
# Normal distribution with mean=50, stddev=10
Visualize.Random.normal(50, 10)
# Generate multiple samples
Visualize.Random.samples(&Visualize.Random.normal(0, 1), 100)
Summary
Functions
Returns a random number from a Bernoulli distribution.
Returns a random number from a beta distribution.
Returns a random integer from a binomial distribution.
Returns a random number from a Cauchy distribution.
Returns a random number from an exponential distribution.
Returns a random number from a gamma distribution.
Returns a random integer from a geometric distribution.
Returns a random point uniformly distributed in a circle.
Returns a random point uniformly distributed in a rectangle.
Returns a random number from a log-normal distribution.
Returns a random number from a normal (Gaussian) distribution.
Returns a random point uniformly distributed on a circle's edge.
Returns a random number from a Pareto distribution.
Picks a single random element from a list.
Returns a random integer from a Poisson distribution.
Picks n random elements from a list.
Generates n samples using the given random function.
Seeds the random number generator for reproducibility.
Shuffles a list randomly (Fisher-Yates shuffle).
Returns a random number uniformly distributed in [min, max).
Returns a random integer uniformly distributed in [min, max].
Returns a random number from a Weibull distribution.
Functions
@spec bernoulli(number()) :: 0 | 1
Returns a random number from a Bernoulli distribution.
Returns 1 with probability p, 0 otherwise.
Returns a random number from a beta distribution.
Useful for modeling proportions and probabilities.
@spec binomial(non_neg_integer(), number()) :: non_neg_integer()
Returns a random integer from a binomial distribution.
Number of successes in n Bernoulli trials with probability p.
Returns a random number from a Cauchy distribution.
A heavy-tailed distribution (undefined mean/variance).
Returns a random number from an exponential distribution.
Models time between events in a Poisson process.
Returns a random number from a gamma distribution.
Uses the Marsaglia and Tsang method.
@spec geometric(number()) :: non_neg_integer()
Returns a random integer from a geometric distribution.
Number of failures before the first success.
Returns a random point uniformly distributed in a circle.
Returns a random point uniformly distributed in a rectangle.
Returns a random number from a log-normal distribution.
If X is normal(mu, sigma), then exp(X) is log-normal.
Returns a random number from a normal (Gaussian) distribution.
Uses the Box-Muller transform.
Returns a random point uniformly distributed on a circle's edge.
Returns a random number from a Pareto distribution.
Models power law phenomena (wealth distribution, etc.)
Picks a single random element from a list.
@spec poisson(number()) :: non_neg_integer()
Returns a random integer from a Poisson distribution.
Models the number of events in a fixed interval.
@spec sample([any()], non_neg_integer()) :: [any()]
Picks n random elements from a list.
@spec samples((-> number()), non_neg_integer()) :: [number()]
Generates n samples using the given random function.
Example
samples = Visualize.Random.samples(fn -> Visualize.Random.normal(0, 1) end, 100)
@spec seed(integer()) :: :rand.state()
Seeds the random number generator for reproducibility.
Shuffles a list randomly (Fisher-Yates shuffle).
Returns a random number uniformly distributed in [min, max).
Returns a random integer uniformly distributed in [min, max].
Returns a random number from a Weibull distribution.
Used in reliability engineering and survival analysis.