📜  rust 范围内的随机数 - Rust (1)

📅  最后修改于: 2023-12-03 15:34:46.849000             🧑  作者: Mango

Rust 范围内的随机数

在 Rust 中,我们可以使用标准库中的 rand 包来生成随机数。但是,如果我们想要在给定的范围内生成随机数,该怎么办呢?本文将向您展示如何在 Rust 中生成特定范围内的随机数。

在给定范围内生成随机整数

要生成在给定的范围内的随机整数,我们可以使用 rand::Rng trait 中的 gen_range 函数。该函数接受两个参数,表示随机数的范围,返回一个指定范围内的随机整数。以下是使用 gen_range 在 1 和 10 之间生成随机整数的示例:

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let random_number = rng.gen_range(1, 11);
    println!("The random number is {}", random_number);
}

这里我们首先创建一个随机数生成器(generator)rng,然后通过调用 gen_range(1, 11) 生成一个在 1 到 10 之间的随机数。需要注意的是,gen_range 生成的随机数是左闭右开(左边包含,右边不包含)区间。因此,我们传递的数字 11 并不会被包含在生成的随机数范围内。

在给定范围内生成随机浮点数

如果我们要生成在特定范围内的随机浮点数,则可以使用 rand::Rng trait 中的 gen_range 函数中的第二个参数,并将其转换为浮点数。以下是使用 gen_range 在 0 和 1 之间生成随机浮点数的示例:

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let random_float = rng.gen_range(0.0, 1.0);
    println!("The random float is {}", random_float);
}

这里我们仍然使用了 gen_range 函数,但是将其第二个参数改为了浮点数,并在 0.0 和 1.0 之间生成了随机浮点数。

在给定范围内生成多个随机数

如果我们需要生成多个在给定范围内的随机数,我们可以使用迭代器和 gen_range 函数。以下是在 1 和 10 之间生成 5 个随机整数的示例:

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let random_numbers: Vec<i32> = (0..5).map(|_| rng.gen_range(1, 11)).collect();
    println!("The random numbers are {:?}", random_numbers);
}

这里我们使用了一个计数器 (0..5) 的迭代器,并在每次迭代中生成一个 1 到 10 之间的随机数。最后,我们将这五个随机数统一存储在一个 Vec<i32> 向量中,并使用 {:?} 格式化符号打印出来。

结论

本文介绍了如何在 Rust 中生成在给定范围内的随机数。我们使用了 rand::Rng trait 中的 gen_range 函数,并通过示例代码说明了如何生成随机整数、随机浮点数和多个随机数。如果您想了解有关 Rust 随机数生成的更多信息,请查看 rust-random/rand