# Struct rand_distr::Zipf

source · `pub struct Zipf<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>

### impl<F> Distribution<F> for Zipf<F>

source§### impl<F> PartialEq for Zipf<F>

### impl<F> PartialEq for Zipf<F>

### impl<F> Copy for Zipf<F>

### impl<F> StructuralPartialEq for Zipf<F>

## Auto Trait Implementations§

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

### 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