当前位置:首页 > Rust > 正文

掌握Rust随机数生成(使用rand库从零开始)

Rust编程教程 中,随机数是一个常见且实用的功能。无论是游戏开发、模拟实验还是安全加密,都离不开高质量的随机数。Rust标准库本身不提供完整的随机数功能,但官方推荐使用 rand 库——这是一个强大、安全且易于使用的 Rust rand库。本文将带你从零开始,一步步学会如何在Rust项目中使用 rand 生成各种类型的随机数,非常适合 Rust新手入门

掌握Rust随机数生成(使用rand库从零开始) Rust rand库  Rust随机数生成 Rust编程教程 Rust新手入门 第1张

第一步:添加 rand 依赖

首先,你需要在你的 Rust 项目中引入 rand 库。打开项目根目录下的 Cargo.toml 文件,在 [dependencies] 部分添加以下内容:

[dependencies]rand = "0.8"

保存后,运行 cargo build 或直接运行程序,Cargo 会自动下载并编译 rand 库。

第二步:生成一个简单的随机整数

下面是最基础的用法:生成一个 1 到 100 之间的随机整数。

use rand::Rng;fn main() {    let mut rng = rand::thread_rng();    let random_number: u32 = rng.gen_range(1..=100);    println!("随机数是: {}", random_number);}

解释一下这段代码:

  • use rand::Rng;:导入 Rng trait,它提供了生成随机数的方法。
  • rand::thread_rng():获取一个线程本地的随机数生成器,性能高且线程安全。
  • gen_range(1..=100):生成 [1, 100] 范围内的随机整数(包含100)。

第三步:生成其他类型的随机数据

除了整数,rand 还能生成浮点数、布尔值、字符,甚至从数组中随机选择元素。

use rand::Rng;fn main() {    let mut rng = rand::thread_rng();    // 随机浮点数 [0.0, 1.0)    let f: f64 = rng.gen();    println!("随机浮点数: {:.4}", f);    // 随机布尔值    let b: bool = rng.gen();    println!("随机布尔值: {}", b);    // 从数组中随机选一个元素    let choices = ['A', 'B', 'C', 'D'];    let choice = rng.choose(&choices).unwrap();    println!("随机选择: {}", choice);}

第四步:自定义分布(进阶)

如果你需要更复杂的随机分布(比如正态分布),rand 也支持。例如:

use rand::distributions::{Normal, Distribution};fn main() {    let normal = Normal::new(0.0, 1.0).unwrap(); // 均值0,标准差1    let mut rng = rand::thread_rng();    let value = normal.sample(&mut rng);    println!("来自正态分布的随机数: {:.4}", value);}

注意:使用 Normal 需要启用 rand_distr 特性。你可以在 Cargo.toml 中这样写:

[dependencies]rand = { version = "0.8", features = ["rand_distr"] }

总结

通过本篇 Rust新手入门 教程,你应该已经掌握了如何使用 Rust rand库 来生成各种类型的随机数。无论是简单的整数、浮点数,还是复杂的概率分布,rand 都能轻松应对。记住,良好的随机数生成是许多应用的基础,而 rand 正是 Rust 生态中最可靠的选择之一。

现在就动手试试吧!创建你的第一个随机数程序,体验 Rust随机数生成 的魅力。