# Struct rand_distr::Zipf

source · ```
pub struct Zipf<F>where
F: Float,
Standard: Distribution<F>,{ /* private fields */ }
```

## Expand description

Samples integers according to the Zipf distribution.

The samples follow Zipf’s law: The frequency of each sample from a finite
set of size `n`

is inversely proportional to a power of its frequency rank
(with exponent `s`

).

For large `n`

, this converges to the `Zeta`

distribution.

For `s = 0`

, this becomes a uniform distribution.

## Example

```
use rand::prelude::*;
use rand_distr::Zipf;
let val: f64 = thread_rng().sample(Zipf::new(10, 1.5).unwrap());
println!("{}", val);
```

## Implementation details

Implemented via rejection sampling, due to Jason Crease1.

## Implementations§

## Trait Implementations§

source§### impl<F> Distribution<F> for Zipf<F>where
F: Float,
Standard: Distribution<F>,

### impl<F> Distribution<F> for Zipf<F>where F: Float, Standard: Distribution<F>,

source§#### fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> F

#### fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> F

Generate a random value of

`T`

, using `rng`

as the source of randomness.source§### impl<F> PartialEq for Zipf<F>where
F: Float + PartialEq,
Standard: Distribution<F>,

### impl<F> PartialEq for Zipf<F>where F: Float + PartialEq, Standard: Distribution<F>,

### impl<F> Copy for Zipf<F>where F: Float + Copy, Standard: Distribution<F>,

### impl<F> StructuralPartialEq for Zipf<F>where F: Float, Standard: Distribution<F>,

## Auto Trait Implementations§

### impl<F> RefUnwindSafe for Zipf<F>where F: RefUnwindSafe,

### impl<F> Send for Zipf<F>where F: Send,

### impl<F> Sync for Zipf<F>where F: Sync,

### impl<F> Unpin for Zipf<F>where F: Unpin,

### impl<F> UnwindSafe for Zipf<F>where F: UnwindSafe,

## Blanket Implementations§

source§### impl<T> BorrowMut<T> for Twhere
T: ?Sized,

### impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§#### fn borrow_mut(&mut self) -> &mut T

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more