Skip to main content

One post tagged with "Random Numbers"

View all tags

Generating Random Numbers in Rust

· One min read
ひかり
Main bloger

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

Reference

https://docs.rs/rand/0.8.5/rand/trait.RnG.html [EOL]