Skip to content

Updated rand and rand_distr, updated code samples #726

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -299,7 +299,7 @@ explanation in the description.
> use rand::distributions::{Normal, Distribution};
>
> fn main() {
> let mut rng = rand::thread_rng();
> let mut rng = rand::rng();
> let normal = Normal::new(2.0, 3.0);
> let v = normal.sample(&mut rng);
> println!("{} is from a N(2, 9) distribution", v)
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -36,8 +36,8 @@ num_cpus = "1.16"
percent-encoding = "2.3"
petgraph = "0.6"
postgres = "0.19"
rand = "0.8"
rand_distr = "0.4"
rand = "0.9"
rand_distr = "0.5.1"
rayon = "1.10"
regex = "1.11"
reqwest = { version = "0.12", features = ["blocking", "json", "stream"] }
8 changes: 4 additions & 4 deletions src/algorithms/randomness/rand-choose.md
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
[![rand-badge]][rand] [![cat-os-badge]][cat-os]

Randomly generates a string of given length ASCII characters with custom
user-defined bytestring, with [`gen_range`].
user-defined bytestring, with [`random_range`].

```rust,edition2018
fn main() {
@@ -12,11 +12,11 @@ fn main() {
abcdefghijklmnopqrstuvwxyz\
0123456789)(*&^%$#@!~";
const PASSWORD_LEN: usize = 30;
let mut rng = rand::thread_rng();
let mut rng = rand::rng();

let password: String = (0..PASSWORD_LEN)
.map(|_| {
let idx = rng.gen_range(0..CHARSET.len());
let idx = rng.random_range(0..CHARSET.len());
CHARSET[idx] as char
})
.collect();
@@ -25,4 +25,4 @@ fn main() {
}
```

[`gen_range`]: https://docs.rs/rand/*/rand/trait.Rng.html#method.gen_range
[`random_range`]: https://docs.rs/rand/*/rand/trait.Rng.html#method.random_range
8 changes: 4 additions & 4 deletions src/algorithms/randomness/rand-custom.md
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@ struct Point {

impl Distribution<Point> for Standard {
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Point {
let (rand_x, rand_y) = rng.gen();
let (rand_x, rand_y) = rng.random();
Point {
x: rand_x,
y: rand_y,
@@ -26,9 +26,9 @@ impl Distribution<Point> for Standard {
}

fn main() {
let mut rng = rand::thread_rng();
let rand_tuple = rng.gen::<(i32, bool, f64)>();
let rand_point: Point = rng.gen();
let mut rng = rand::rng();
let rand_tuple = rng.random::<(i32, bool, f64)>();
let rand_point: Point = rng.random();
println!("Random tuple: {:?}", rand_tuple);
println!("Random Point: {:?}", rand_point);
}
4 changes: 2 additions & 2 deletions src/algorithms/randomness/rand-dist.md
Original file line number Diff line number Diff line change
@@ -14,10 +14,10 @@ An example using the [`Normal`] distribution is shown below.

```rust,edition2018,ignore
use rand_distr::{Distribution, Normal, NormalError};
use rand::thread_rng;
use rand::rng;

fn main() -> Result<(), NormalError> {
let mut rng = thread_rng();
let mut rng = rng();
let normal = Normal::new(2.0, 3.0)?;
let v = normal.sample(&mut rng);
println!("{} is from a N(2, 9) distribution", v);
4 changes: 2 additions & 2 deletions src/algorithms/randomness/rand-passwd.md
Original file line number Diff line number Diff line change
@@ -6,11 +6,11 @@ Randomly generates a string of given length ASCII characters in the range `A-Z,
a-z, 0-9`, with [`Alphanumeric`] sample.

```rust,edition2018
use rand::{thread_rng, Rng};
use rand::{rng, Rng};
use rand::distributions::Alphanumeric;

fn main() {
let rand_string: String = thread_rng()
let rand_string: String = rng()
.sample_iter(&Alphanumeric)
.take(30)
.map(char::from)
12 changes: 6 additions & 6 deletions src/algorithms/randomness/rand-range.md
Original file line number Diff line number Diff line change
@@ -2,15 +2,15 @@

[![rand-badge]][rand] [![cat-science-badge]][cat-science]

Generates a random value within half-open `[0, 10)` range (not including `10`) with [`Rng::gen_range`].
Generates a random value within half-open `[0, 10)` range (not including `10`) with [`Rng::random_range`].

```rust,edition2018
use rand::Rng;

fn main() {
let mut rng = rand::thread_rng();
println!("Integer: {}", rng.gen_range(0..10));
println!("Float: {}", rng.gen_range(0.0..10.0));
let mut rng = rand::rng();
println!("Integer: {}", rng.random_range(0..10));
println!("Float: {}", rng.random_range(0.0..10.0));
}
```

@@ -23,7 +23,7 @@ in the same range.
use rand::distributions::{Distribution, Uniform};

fn main() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let die = Uniform::from(1..7);

loop {
@@ -37,5 +37,5 @@ fn main() {
```

[`Uniform`]: https://docs.rs/rand/*/rand/distributions/uniform/struct.Uniform.html
[`Rng::gen_range`]: https://doc.rust-lang.org/rand/*/rand/trait.Rng.html#method.gen_range
[`Rng::random_range`]: https://doc.rust-lang.org/rand/*/rand/trait.Rng.html#method.random_range
[uniform distribution]: https://en.wikipedia.org/wiki/Uniform_distribution_(continuous)
16 changes: 8 additions & 8 deletions src/algorithms/randomness/rand.md
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
[![rand-badge]][rand] [![cat-science-badge]][cat-science]

Generates random numbers with help of random-number
generator [`rand::Rng`] obtained via [`rand::thread_rng`]. Each thread has an
generator [`rand::Rng`] obtained via [`rand::rng`]. Each thread has an
initialized generator. Integers are uniformly distributed over the range of the
type, and floating point numbers are uniformly distributed from 0 up to but not
including 1.
@@ -12,17 +12,17 @@ including 1.
use rand::Rng;

fn main() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();

let n1: u8 = rng.gen();
let n2: u16 = rng.gen();
let n1: u8 = rng.random();
let n2: u16 = rng.random();
println!("Random u8: {}", n1);
println!("Random u16: {}", n2);
println!("Random u32: {}", rng.gen::<u32>());
println!("Random i32: {}", rng.gen::<i32>());
println!("Random float: {}", rng.gen::<f64>());
println!("Random u32: {}", rng.random::<u32>());
println!("Random i32: {}", rng.random::<i32>());
println!("Random float: {}", rng.random::<f64>());
}
```

[`rand::Rng`]: https://docs.rs/rand/*/rand/trait.Rng.html
[`rand::thread_rng`]: https://docs.rs/rand/*/rand/fn.thread_rng.html
[`rand::rng`]: https://docs.rs/rand/*/rand/fn.rng.html