9 个稳定版本
4.2.2 | 2023 年 6 月 2 日 |
---|---|
4.2.1 | 2022 年 10 月 11 日 |
4.2.0 | 2022 年 8 月 9 日 |
4.1.3 | 2022 年 7 月 31 日 |
2.0.0 | 2020 年 3 月 15 日 |
#107 在 算法 中
3,048 每月下载量
用于 7 个 crate(4 个直接使用)
160KB
5K SLoC
rand_mt
实现了一系列 Mersenne Twister 随机数生成器。
一个周期为 219937-1 的非常快速的随机数生成器。(Makoto Matsumoto,1997)。
Mersenne Twister 算法不适合加密用途,但非常普遍。请参阅 Mersenne Twister 网站。Mersenne Twister 的一个变体是 Ruby 的默认 PRNG。
此 crate 可选依赖于 rand_core
并在此 crate 的 RNG 上实现 RngCore
。
用法
将此添加到您的 Cargo.toml
[dependencies]
rand_mt = "4.2.2"
然后创建一个 RNG,如下所示:
use rand_mt::Mt64;
let mut rng = Mt64::new_unseeded();
assert_ne!(rng.next_u64(), rng.next_u64());
crate 功能
rand_mt
与 no_std
兼容。rand_mt
有几个可选功能默认启用
- rand-traits - 启用对
rand_core
的依赖。启用此功能将在 crate 的 RNG 上实现RngCore
和SeedableRng
。 - std - 启用对 Rust 标准库的依赖。启用此功能将在 crate 中的错误类型上启用
std::error::Error
实现。
Mersenne Twister 需要大约 2.5 KB 的内部状态。为了使在此 crate 中实现的 RNG 在其他结构中嵌入变得实际,您可能希望将 RNG 存储在 Box
中。
最低支持的 Rust 版本
此 crate 需要 Rust 1.47.0 或更高版本。此版本可以在次要版本中提升。
许可证
rand_mt
采用的是 MIT 许可证或 Apache 许可证(版本 2.0)。
rand_mt
由 rust-mersenne-twister
衍生,版本为 1.1.1
,版权所有 (c) 2015 rust-mersenne-twister 开发者。