4.2 升级到 0.6

原文链接: https://rust-random.github.io/book/update-0.6.html

在 0.6 周期中,Rand 在 rust-random 项目下找到了新家。我们已经感到宾至如归,但如果你想帮我们装饰,一个新 logo 将不胜感激!

我们还为面向用户的文档找到了新家——就是本书!

PRNG

我们旧的 PRNG 模块中的所有 PRNG 都已移至新 crate。我们还添加了一个包含 PCG 算法的额外 crate,以及一个包含 Xoshiro / Xoroshiro 算法的外部 crate:

SmallRng

本次更新,我们将 SmallRng 背后的算法从 Xorshift 切换为 PCG 算法(Pcg64Mcg 即 XSL 128/64 MCG,或 Pcg32 即 XSH RR 64/32 LCG,也就是标准 PCG 算法)。

序列

seq 模块已完全重写,Rng trait 中的 choose 和 shuffle 方法已被移除。大多数功能现在可以在 IteratorRandom 和 SliceRandom trait 中找到。

加权选择

WeightedChoice 分布现已替换为 WeightedIndex,通过使功能更通用解决了几个问题。

为方便起见,SliceRandom::choose_weighted 方法(及其 _mut 变体)允许直接将 WeightedIndex 采样应用于切片。

其他特性

SIMD 类型

Rand 现在具有生成 SIMD 类型的初步支持,由 simd_support 特性标志控制。

i128 / u128 类型

由于这些类型现在在稳定版编译器上可用,这些类型会自动得到支持(需要足够新的 Rust 版本)。i128_support 特性标志仍然存在以避免破坏性变更,但已不再有任何作用。

最后修改 August 23, 2026: 更新 (499855b16)