How to generate N unique random numbers between min and max in Rust

1 Answer

0 votes
extern crate rand;

use rand::Rng;
use std::collections::HashSet;

fn generate_unique_random_numbers(n: usize, min: u32, max: u32) -> Vec<u32> {
    let mut rng = rand::thread_rng();
    let mut numbers: HashSet<u32> = HashSet::new();

    while numbers.len() < n {
        let num = rng.gen_range(min..=max);
        numbers.insert(num);
    }

    numbers.into_iter().collect()
}

fn main() {
    let n = 8;
    
    let unique_numbers = generate_unique_random_numbers(n, 1, 20);
    
    println!("Unique random numbers: {:?}", unique_numbers);
}



  
/*
run:

Unique random numbers: [1, 6, 15, 20, 2, 9, 7, 10]

*/

 



answered Sep 25, 2024 by avibootz

Related questions

...