# Struct rand::distributions::range::Range [−] [src]

    pub struct Range<X> { /* fields omitted */ }

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 = 0u8`, `high = 170u8`, 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.

# Example

    use rand::distributions::{IndependentSample, Range};

    fn main() {
        let between = Range::new(10, 10000);
        let mut rng = rand::thread_rng();
        let mut sum = 0;
        for _ in 0..1000 {
            sum += between.ind_sample(&mut rng);
        }
        println!("{}", sum);
    }

## Methods

### `impl<X: SampleRange + PartialOrd> Range<X>`
[src]

#### `pub fn new(low: X, high: X) -> Range<X>`
[src]

Create a new `Range` instance that samples uniformly from `[low, high)`. Panics if `low >= high`.

## Trait Implementations

### `impl<X: Clone> Clone for Range<X>`
[src]

#### `fn clone(&self) -> Range<X>`
[src]

Returns a copy of the value. Read more

#### `fn clone_from(&mut self, source: &Self)`
1.0.0
[src]

Performs copy-assignment from `source`. Read more

### `impl<X: Copy> Copy for Range<X>`
[src]

### `impl<X: Debug> Debug for Range<X>`
[src]

#### `fn fmt(&self, __arg_0: &mut Formatter) -> Result`
[src]

Formats the value using the given formatter. Read more

### `impl<Sup: SampleRange> Sample<Sup> for Range<Sup>`
[src]

#### `fn sample<R: Rng>(&mut self, rng: &mut R) -> Sup`
[src]

Generate a random value of `Support`, using `rng` as the source of randomness. Read more

### `impl<Sup: SampleRange> IndependentSample<Sup> for Range<Sup>`
[src]

#### `fn ind_sample<R: Rng>(&self, rng: &mut R) -> Sup`
[src]

Generate a random value.

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)