Struct std::rand::distributions::Range
[−]
[src]
pub struct Range<X> { low: X, range: X, accept_zone: X, }
rand
): use rand
from crates.io
Sample values uniformly between two bounds.
This gives a uniform distribution (assuming the RNG used to sample
it is itself uniform & the SampleRange
implementation for the
given type is correct), even for edge cases like low = 0
,
high = 170
, for which a naive modulo operation would return
numbers less than 85 with double the probability to those greater
than 85.
Types should attempt to sample in [low, high)
, i.e., not
including high
, but this may be very difficult. All the
primitive integer types satisfy this property, and the float types
normally satisfy it, but rounding may mean high
can occur.
Fields
low | Unstable ( rand ): use |
range | Unstable ( rand ): use |
accept_zone | Unstable ( rand ): use |
Methods
impl<X> Range<X> where X: SampleRange + PartialOrd<X>
fn new(low: X, high: X) -> Range<X>
rand
): use rand
from crates.io
Create a new Range
instance that samples uniformly from
[low, high)
. Panics if low >= high
.