# Struct rand::distributions::Open01

source · `pub struct Open01;`

## Expand description

A distribution to sample floating point numbers uniformly in the open
interval `(0, 1)`

, i.e. not including either endpoint.

All values that can be generated are of the form `n * ε + ε/2`

. For `f32`

the 23 most significant random bits of an `u32`

are used, for `f64`

52 from
an `u64`

. The conversion uses a transmute-based method.

See also: `Standard`

which samples from `[0, 1)`

, `OpenClosed01`

which samples from `(0, 1]`

and `Uniform`

which samples from arbitrary
ranges.

## Example

```
use rand::{thread_rng, Rng};
use rand::distributions::Open01;
let val: f32 = thread_rng().sample(Open01);
println!("f32 from (0, 1): {}", val);
```

## Trait Implementations§

source§### impl<'de> Deserialize<'de> for Open01

### impl<'de> Deserialize<'de> for Open01

source§#### fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,

#### fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

source§### impl Distribution<f32> for Open01

### impl Distribution<f32> for Open01

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

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

Generate a random value of

`T`

, using `rng`

as the source of randomness.source§### impl Distribution<f64> for Open01

### impl Distribution<f64> for Open01

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

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

Generate a random value of

`T`

, using `rng`

as the source of randomness.### impl Copy for Open01

## Auto Trait Implementations§

### impl RefUnwindSafe for Open01

### impl Send for Open01

### impl Sync for Open01

### impl Unpin for Open01

### impl UnwindSafe for Open01

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