Struct statrs::distribution::DiscreteUniform [] [src]

pub struct DiscreteUniform { /* fields omitted */ }

Implements the Discrete Uniform distribution

Examples

use statrs::distribution::{DiscreteUniform, Discrete};
use statrs::statistics::Mean;

let n = DiscreteUniform::new(0, 5).unwrap();
assert_eq!(n.mean(), 2.5);
assert_eq!(n.pmf(3), 1.0 / 6.0);

Methods

impl DiscreteUniform
[src]

Constructs a new discrete uniform distribution with a minimum value of min and a maximum value of max.

Errors

Returns an error if max < min

Examples

use statrs::distribution::DiscreteUniform;

let mut result = DiscreteUniform::new(0, 5);
assert!(result.is_ok());

result = DiscreteUniform::new(5, 0);
assert!(result.is_err());

Trait Implementations

impl Debug for DiscreteUniform
[src]

Formats the value using the given formatter.

impl Copy for DiscreteUniform
[src]

impl Clone for DiscreteUniform
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl PartialEq for DiscreteUniform
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Sample<f64> for DiscreteUniform
[src]

Generate a random sample from a discrete uniform distribution using r as the source of randomness. Refer here for implementation details

impl IndependentSample<f64> for DiscreteUniform
[src]

Generate a random independent sample from a discrete uniform distribution using r as the source of randomness. Refer here for implementation details

impl Distribution<f64> for DiscreteUniform
[src]

Generate a random sample from the discrete uniform distribution using r as the source of randomness in the range [min, max]

Examples

use rand::StdRng;
use statrs::distribution::{DiscreteUniform, Distribution};

let mut r = rand::StdRng::new().unwrap();
let n = DiscreteUniform::new(0, 5).unwrap();
print!("{}", n.sample::<StdRng>(&mut r));

impl Univariate<i64, f64> for DiscreteUniform
[src]

Calculates the cumulative distribution function for the discrete uniform distribution at x

Remarks

Returns 0.0 if x < min and 1.0 if x >= max

Formula

(floor(x) - min + 1) / (max - min + 1)

impl Min<i64> for DiscreteUniform
[src]

Returns the minimum value in the domain of the discrete uniform distribution

Remarks

This is the same value as the minimum passed into the constructor

impl Max<i64> for DiscreteUniform
[src]

Returns the maximum value in the domain of the discrete uniform distribution

Remarks

This is the same value as the maximum passed into the constructor

impl Mean<f64> for DiscreteUniform
[src]

Returns the mean of the discrete uniform distribution

Formula

(min + max) / 2

impl Variance<f64> for DiscreteUniform
[src]

Returns the variance of the discrete uniform distribution

Formula

((max - min + 1)^2 - 1) / 12

Returns the standard deviation of the discrete uniform distribution

Formula

sqrt(((max - min + 1)^2 - 1) / 12)

impl Entropy<f64> for DiscreteUniform
[src]

Returns the entropy of the discrete uniform distribution

Formula

ln(max - min + 1)

impl Skewness<f64> for DiscreteUniform
[src]

Returns the skewness of the discrete uniform distribution

Formula

0

impl Median<f64> for DiscreteUniform
[src]

Returns the median of the discrete uniform distribution

Formula

(max + min) / 2

impl Mode<i64> for DiscreteUniform
[src]

Returns the mode for the discrete uniform distribution

Remarks

Since every element has an equal probability, mode simply returns the middle element

Formula

N/A // (max + min) / 2 for the middle element

impl Discrete<i64, f64> for DiscreteUniform
[src]

Calculates the probability mass function for the discrete uniform distribution at x

Remarks

Returns 0.0 if x is not in [min, max]

Formula

1 / (max - min + 1)

Calculates the log probability mass function for the discrete uniform distribution at x

Remarks

Returns f64::NEG_INFINITY if x is not in [min, max]

Formula

ln(1 / (max - min + 1))