Generating Random Numbers in Rust
· One min read
Note: If the crate version is different, the functions will also be different.
Add the required crate
Add the rand crate as a dependency.
cargo add rand
Example program to generate uniformly distributed random numbers
use rand::Rng;
fn main(){
let mut rng = rand::thread_rng();
// Floating-point number
let r: f64 = rng.gen_range(0.0..10000.0);
println!("{}", r);
// Integer
let r: i32 = rng.gen_range(0..10000);
println!("{}", r);
}
$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.00s
Running `target/debug/test`
9464.07133934519
9606
Example program to generate uniformly distributed random numbers
use rand::Rng;
fn main(){
let mut rng = rand::thread_rng();
let r: f64 = rng.gen();
println!("{}", r);
}
$ cargo run
Compiling alg2opt v0.1.0 (/home/hikari/2-opt/alg2opt)
Finished dev [unoptimized + debuginfo] target(s) in 0.26s
Running `target/debug/test`
0.34703657185118175
Random numbers following a specified distribution
use rand::Rng;
use rand::distributions::Uniform;
fn main(){
let mut rng = rand::thread_rng();
let r: f64 = rng.sample(Uniform::new(10.0, 15.0));
println!("{}", r);
}
$ cargo run
Compiling alg2opt v0.1.0 (/home/hikari/2-opt/alg2opt)
Finished dev [unoptimized + debuginfo] target(s) in 0.26s
Running `target/debug/test`
12.13344856630783
