# Crate rand_distr

source ·## Expand description

Generating random samples from probability distributions.

### §Re-exports

This crate is a super-set of the `rand::distributions`

module. See the
`rand::distributions`

module documentation for an overview of the core
`Distribution`

trait and implementations.

The following are re-exported:

- The
`Distribution`

trait and`DistIter`

helper type - The
`Standard`

,`Alphanumeric`

,`Uniform`

,`OpenClosed01`

,`Open01`

,`Bernoulli`

, and`WeightedIndex`

distributions

### §Distributions

This crate provides the following probability distributions:

- Related to real-valued quantities that grow linearly
(e.g. errors, offsets):
`Normal`

distribution, and`StandardNormal`

as a primitive`SkewNormal`

distribution`Cauchy`

distribution

- Related to Bernoulli trials (yes/no events, with a given probability):
`Binomial`

distribution`Geometric`

distribution`Hypergeometric`

distribution

- Related to positive real-valued quantities that grow exponentially
(e.g. prices, incomes, populations):
`LogNormal`

distribution

- Related to the occurrence of independent events at a given rate:
- Gamma and derived distributions:
`Gamma`

distribution`ChiSquared`

distribution`StudentT`

distribution`FisherF`

distribution

- Triangular distribution:
`Beta`

distribution`Triangular`

distribution

- Multivariate probability distributions
`Dirichlet`

distribution`UnitSphere`

distribution`UnitBall`

distribution`UnitCircle`

distribution`UnitDisc`

distribution

- Alternative implementations for weighted index sampling
`WeightedAliasIndex`

distribution`WeightedTreeIndex`

distribution

- Misc. distributions
`InverseGaussian`

distribution`NormalInverseGaussian`

distribution

## Re-exports§

`pub use weighted_alias::WeightedAliasIndex;`

`pub use weighted_tree::WeightedTreeIndex;`

`pub use num_traits;`

## Modules§

- A distribution uniformly sampling numbers within a given range.
- This module contains an implementation of alias method for sampling random indices with probabilities proportional to a collection of weights.
- This module contains an implementation of a tree structure for sampling random indices with probabilities proportional to a collection of weights.

## Structs§

- Sample a
`u8`

, uniformly distributed over ASCII letters and numbers: a-z, A-Z and 0-9. - The Bernoulli distribution.
- The Beta distribution with shape parameters
`alpha`

and`beta`

. - The binomial distribution
`Binomial(n, p)`

. - The Cauchy distribution
`Cauchy(median, scale)`

. - The chi-squared distribution
`χ²(k)`

, where`k`

is the degrees of freedom. - The Dirichlet distribution
`Dirichlet(alpha)`

. - An iterator that generates random values of
`T`

with distribution`D`

, using`R`

as the source of randomness. - The exponential distribution
`Exp(lambda)`

. - Samples floating-point numbers according to the exponential distribution, with rate parameter
`λ = 1`

. This is equivalent to`Exp::new(1.0)`

or sampling with`-rng.gen::<f64>().ln()`

, but faster. - The Fisher F distribution
`F(m, n)`

. - Samples floating-point numbers according to the Fréchet distribution
- The Gamma distribution
`Gamma(shape, scale)`

distribution. - The geometric distribution
`Geometric(p)`

bounded to`[0, u64::MAX]`

. - Samples floating-point numbers according to the Gumbel distribution
- The hypergeometric distribution
`Hypergeometric(N, K, n)`

. - The log-normal distribution
`ln N(mean, std_dev**2)`

. - The normal distribution
`N(mean, std_dev**2)`

. - A distribution to sample floating point numbers uniformly in the open interval
`(0, 1)`

, i.e. not including either endpoint. - A distribution to sample floating point numbers uniformly in the half-open interval
`(0, 1]`

, i.e. including 1 but not 0. - Samples floating-point numbers according to the Pareto distribution
- The PERT distribution.
- The Poisson distribution
`Poisson(lambda)`

. - The skew normal distribution
`SN(location, scale, shape)`

. - A generic random value distribution, implemented for many primitive types. Usually generates values with a numerically uniform distribution, and with a range appropriate to the type.
- Samples integers according to the geometric distribution with success probability
`p = 0.5`

. This is equivalent to`Geometeric::new(0.5)`

, but faster. - Samples floating-point numbers according to the normal distribution
`N(0, 1)`

(a.k.a. a standard normal, or Gaussian). This is equivalent to`Normal::new(0.0, 1.0)`

but faster. - The Student t distribution,
`t(nu)`

, where`nu`

is the degrees of freedom. - The triangular distribution.
- Sample values uniformly between two bounds.
- Samples uniformly from the unit ball (surface and interior) in three dimensions.
- Samples uniformly from the edge of the unit circle in two dimensions.
- Samples uniformly from the unit disc in two dimensions.
- Samples uniformly from the surface of the unit sphere in three dimensions.
- Samples floating-point numbers according to the Weibull distribution
- A distribution using weighted sampling of discrete items
- Samples integers according to the zeta distribution.
- Samples integers according to the Zipf distribution.

## Enums§

- Error type returned from
`Bernoulli::new`

. - Error type returned from
`Beta::new`

. - Error type returned from
`Binomial::new`

. - Error type returned from
`Cauchy::new`

. - Error type returned from
`ChiSquared::new`

and`StudentT::new`

. - Error type returned from
`Dirchlet::new`

. - Error type returned from
`Exp::new`

. - Error type returned from
`FisherF::new`

. - Error type returned from
`Frechet::new`

. - Error type returned from
`Gamma::new`

. - Error type returned from
`Geometric::new`

. - Error type returned from
`Gumbel::new`

. - Error type returned from
`Hypergeometric::new`

. - Error type returned from
`InverseGaussian::new`

- Error type returned from
`Normal::new`

and`LogNormal::new`

. - Error type returned from
`NormalInverseGaussian::new`

- Error type returned from
`Pareto::new`

. - Error type returned from
`Pert`

constructors. - Error type returned from
`Poisson::new`

. - Error type returned from
`SkewNormal::new`

. - Error type returned from
`Triangular::new`

. - Error type returned from
`Weibull::new`

. - Errors returned by weighted distributions
- Error type returned from
`Zeta::new`

. - Error type returned from
`Zipf::new`

.

## Traits§

- Types (distributions) that can be used to create a random instance of
`T`

.