Struct rand::distributions::Bernoulli
source · [−]pub struct Bernoulli { /* private fields */ }
Expand description
The Bernoulli distribution.
This is a special case of the Binomial distribution where n = 1
.
Example
use rand::distributions::{Bernoulli, Distribution};
let d = Bernoulli::new(0.3);
let v = d.sample(&mut rand::thread_rng());
println!("{} is from a Bernoulli distribution", v);
Precision
This Bernoulli
distribution uses 64 bits from the RNG (a u64
),
so only probabilities that are multiples of 2-64 can be
represented.
Implementations
sourceimpl Bernoulli
impl Bernoulli
sourcepub fn new(p: f64) -> Bernoulli
pub fn new(p: f64) -> Bernoulli
Construct a new Bernoulli
with the given probability of success p
.
Panics
If p < 0
or p > 1
.
Precision
For p = 1.0
, the resulting distribution will always generate true.
For p = 0.0
, the resulting distribution will always generate false.
This method is accurate for any input p
in the range [0, 1]
which is
a multiple of 2-64. (Note that not all multiples of
2-64 in [0, 1]
can be represented as a f64
.)
sourcepub fn from_ratio(numerator: u32, denominator: u32) -> Bernoulli
pub fn from_ratio(numerator: u32, denominator: u32) -> Bernoulli
Construct a new Bernoulli
with the probability of success of
numerator
-in-denominator
. I.e. new_ratio(2, 3)
will return
a Bernoulli
with a 2-in-3 chance, or about 67%, of returning true
.
If numerator == denominator
then the returned Bernoulli
will always
return true
. If numerator == 0
it will always return false
.
Panics
If denominator == 0
or numerator > denominator
.
Trait Implementations
sourceimpl Distribution<bool> for Bernoulli
impl Distribution<bool> for Bernoulli
sourcefn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> bool
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> bool
Generate a random value of T
, using rng
as the source of randomness.
sourcefn sample_iter<'a, R>(&'a self, rng: &'a mut R) -> DistIter<'a, Self, R, T>ⓘNotable traits for DistIter<'a, D, R, T>impl<'a, D, R, T> Iterator for DistIter<'a, D, R, T> where
D: Distribution<T>,
R: Rng + 'a, type Item = T;
where
Self: Sized,
R: Rng,
fn sample_iter<'a, R>(&'a self, rng: &'a mut R) -> DistIter<'a, Self, R, T>ⓘNotable traits for DistIter<'a, D, R, T>impl<'a, D, R, T> Iterator for DistIter<'a, D, R, T> where
D: Distribution<T>,
R: Rng + 'a, type Item = T;
where
Self: Sized,
R: Rng,
D: Distribution<T>,
R: Rng + 'a, type Item = T;
Create an iterator that generates random values of T
, using rng
as
the source of randomness. Read more
impl Copy for Bernoulli
Auto Trait Implementations
impl RefUnwindSafe for Bernoulli
impl Send for Bernoulli
impl Sync for Bernoulli
impl Unpin for Bernoulli
impl UnwindSafe for Bernoulli
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more