Struct rand::distributions::Uniform
[−]
[src]
pub struct Uniform;
A generic random value distribution. Generates values for various types with numerically uniform distribution.
For floating-point numbers, this generates values from the open range
(0, 1)
(i.e. excluding 0.0 and 1.0).
Built-in Implementations
This crate implements the distribution Uniform
for various primitive
types. Assuming the provided Rng
is well-behaved, these implementations
generate values with the following ranges and distributions:
- Integers (
i32
,u32
,isize
,usize
, etc.): Uniformly distributed over all values of the type. char
: Uniformly distributed over all Unicode scalar values, i.e. all code points in the range0...0x10_FFFF
, except for the range0xD800...0xDFFF
(the surrogate code points). This includes unassigned/reserved code points.bool
: Generatesfalse
ortrue
, each with probability 0.5.- Floating point types (
f32
andf64
): Uniformly distributed in the open range(0, 1)
.
The following aggregate types also implement the distribution Uniform
as
long as their component types implement it:
- Tuples and arrays: Each element of the tuple or array is generated
independently, using the
Uniform
distribution recursively. Option<T>
: ReturnsNone
with probability 0.5; otherwise generates a randomT
and returnsSome(T)
.
Example
use rand::{NewRng, SmallRng, Rng}; use rand::distributions::Uniform; let val: f32 = SmallRng::new().sample(Uniform); println!("f32 from [0,1): {}", val);
With dynamic dispatch (type erasure of Rng
):
use rand::{thread_rng, Rng, RngCore}; use rand::distributions::Uniform; let mut rng = thread_rng(); let mut erased_rng: &mut RngCore = &mut rng; let val: f32 = erased_rng.sample(Uniform); println!("f32 from [0,1): {}", val);
Trait Implementations
impl Distribution<f32> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f32
[src]
Generate a floating point number in the open interval (0, 1)
(not including either endpoint) with a uniform distribution.
Example
use rand::{NewRng, SmallRng, Rng}; use rand::distributions::Uniform; let val: f32 = SmallRng::new().sample(Uniform); println!("f32 from (0,1): {}", val);
impl Distribution<f64> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64
[src]
Generate a floating point number in the open interval (0, 1)
(not including either endpoint) with a uniform distribution.
Example
use rand::{NewRng, SmallRng, Rng}; use rand::distributions::Uniform; let val: f32 = SmallRng::new().sample(Uniform); println!("f32 from (0,1): {}", val);
impl Distribution<isize> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> isize
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<i8> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> i8
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<i16> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> i16
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<i32> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> i32
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<i64> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> i64
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<usize> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> usize
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<u8> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> u8
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<u16> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> u16
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<u32> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> u32
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<u64> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> u64
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<char> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> char
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<bool> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> bool
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl Distribution<()> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, _: &mut R)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A> Distribution<(A,)> for Uniform where
Uniform: Distribution<A>,
[src]
Uniform: Distribution<A>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> (A,)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B> Distribution<(A, B)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> (A, B)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C> Distribution<(A, B, C)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> (A, B, C)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C, D> Distribution<(A, B, C, D)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> (A, B, C, D)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C, D, E> Distribution<(A, B, C, D, E)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> (A, B, C, D, E)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C, D, E, F> Distribution<(A, B, C, D, E, F)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> (A, B, C, D, E, F)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C, D, E, F, G> Distribution<(A, B, C, D, E, F, G)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> (A, B, C, D, E, F, G)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C, D, E, F, G, H> Distribution<(A, B, C, D, E, F, G, H)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> (A, B, C, D, E, F, G, H)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C, D, E, F, G, H, I> Distribution<(A, B, C, D, E, F, G, H, I)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
Uniform: Distribution<I>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
Uniform: Distribution<I>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> (A, B, C, D, E, F, G, H, I)
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C, D, E, F, G, H, I, J> Distribution<(A, B, C, D, E, F, G, H, I, J)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
Uniform: Distribution<I>,
Uniform: Distribution<J>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
Uniform: Distribution<I>,
Uniform: Distribution<J>,
fn sample<R: Rng + ?Sized>(
&self,
_rng: &mut R
) -> (A, B, C, D, E, F, G, H, I, J)
[src]
&self,
_rng: &mut R
) -> (A, B, C, D, E, F, G, H, I, J)
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C, D, E, F, G, H, I, J, K> Distribution<(A, B, C, D, E, F, G, H, I, J, K)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
Uniform: Distribution<I>,
Uniform: Distribution<J>,
Uniform: Distribution<K>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
Uniform: Distribution<I>,
Uniform: Distribution<J>,
Uniform: Distribution<K>,
fn sample<R: Rng + ?Sized>(
&self,
_rng: &mut R
) -> (A, B, C, D, E, F, G, H, I, J, K)
[src]
&self,
_rng: &mut R
) -> (A, B, C, D, E, F, G, H, I, J, K)
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<A, B, C, D, E, F, G, H, I, J, K, L> Distribution<(A, B, C, D, E, F, G, H, I, J, K, L)> for Uniform where
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
Uniform: Distribution<I>,
Uniform: Distribution<J>,
Uniform: Distribution<K>,
Uniform: Distribution<L>,
[src]
Uniform: Distribution<A>,
Uniform: Distribution<B>,
Uniform: Distribution<C>,
Uniform: Distribution<D>,
Uniform: Distribution<E>,
Uniform: Distribution<F>,
Uniform: Distribution<G>,
Uniform: Distribution<H>,
Uniform: Distribution<I>,
Uniform: Distribution<J>,
Uniform: Distribution<K>,
Uniform: Distribution<L>,
fn sample<R: Rng + ?Sized>(
&self,
_rng: &mut R
) -> (A, B, C, D, E, F, G, H, I, J, K, L)
[src]
&self,
_rng: &mut R
) -> (A, B, C, D, E, F, G, H, I, J, K, L)
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 0]> for Uniform
[src]
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 0]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 1]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 1]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 2]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 2]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 3]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 3]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 4]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 4]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 5]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 5]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 6]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 6]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 7]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 7]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 8]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 8]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 9]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 9]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 10]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 10]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 11]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 11]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 12]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 12]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 13]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 13]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 14]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 14]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 15]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 15]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 16]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 16]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 17]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 17]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 18]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 18]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 19]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 19]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 20]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 20]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 21]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 21]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 22]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 22]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 23]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 23]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 24]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 24]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 25]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 25]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 26]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 26]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 27]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 27]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 28]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 28]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 29]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 29]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 30]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 30]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 31]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 31]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<[T; 32]> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> [T; 32]
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more
impl<T> Distribution<Option<T>> for Uniform where
Uniform: Distribution<T>,
[src]
Uniform: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Option<T>
[src]
Generate a random value of T
, using rng
as the source of randomness. Read more