# Struct rand_distr::Geometric [−][src]

`pub struct Geometric { /* fields omitted */ }`

## Expand description

The geometric distribution `Geometric(p)`

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

.

This is the probability distribution of the number of failures before the
first success in a series of Bernoulli trials. It has the density function
`f(k) = (1 - p)^k p`

for `k >= 0`

, where `p`

is the probability of success
on each trial.

This is the discrete analogue of the exponential distribution.

Note that `StandardGeometric`

is an optimised
implementation for `p = 0.5`

.

## Example

```
use rand_distr::{Geometric, Distribution};
let geo = Geometric::new(0.25).unwrap();
let v = geo.sample(&mut rand::thread_rng());
println!("{} is from a Geometric(0.25) distribution", v);
```

## Implementations

## Trait Implementations

Generate a random value of `T`

, using `rng`

as the source of randomness.

#### fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T>ⓘ where

R: Rng,

#### fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T>ⓘ where

R: Rng,

Create an iterator that generates random values of `T`

, using `rng`

as
the source of randomness. Read more

## Auto Trait Implementations

### impl RefUnwindSafe for Geometric

### impl UnwindSafe for Geometric

## Blanket Implementations

Mutably borrows from an owned value. Read more