7 个不稳定版本 (3 个破坏性)

0.10.0 2024年5月23日
0.9.0 2024年5月14日
0.8.1 2023年9月19日
0.8.0 2023年8月12日
0.7.3 2023年8月9日

#378 in 算法

Download history 4/week @ 2024-05-03 195/week @ 2024-05-10 129/week @ 2024-05-17 46/week @ 2024-05-24 4/week @ 2024-05-31 5/week @ 2024-06-07 2/week @ 2024-06-14 16/week @ 2024-06-21 17/week @ 2024-06-28 3/week @ 2024-07-05

每月下载量 564
3 crates 中使用

Apache-2.0 OR MIT

22KB
460

FRand

Crate

FRand 是一个闪电般的快速、小巧且简单的伪随机数生成器 (PRNG),用 Rust 编写。使用 FRand 的优点是它每秒可以产生比其他库更多的随机数。它还使用快速的 非加密 哈希算法产生高质量的随机数。

为了找到算法的最佳常数,我使用了一个自动程序,该程序每秒尝试许多随机常数并测量输出的偏差。偏差是通过雪崩效应来估计的,这是好哈希函数的一个特性,确保输入的微小变化会在输出中产生大的变化。程序选择了最小化偏差并最大化随机性的常数。

用法

此 crate 可在 crates.io 上找到,可以通过将 frand 添加到项目 Cargo.toml 中的依赖项来使用。

[dependencies]
frand = "0.10"

FRand 非常简单易用。以下是如何使用 FRand 生成随机浮点数的简单示例

use frand::Rand;

let mut rng = Rand::new();
println!("{}", rng.gen::<f32>());

速度

u64

rand::ThreadRng rand::SmallRng fastrand::Rng frand::Rand
1.00x 3.74x 5.80x 6.09x

f64

rand::ThreadRng rand::SmallRng fastrand::Rng frand::Rand
1.00x 3.79x 2.34x 5.57x

u128

rand::ThreadRng rand::SmallRng fastrand::Rng frand::Rand
1.00x 2.15x 6.79x 7.24x

如果您有改进此库的建议,您可以为此项目做出贡献!

依赖项

~3.5MB
~104K SLoC