#generator #numbers #rng #state #splitmix64 #xoroshiro #implemented

废弃 xoshiro

Xoshiro、xoroshiro 和 splitmix64 随机数生成器

5 个版本

使用旧的 Rust 2015

0.0.5 2019 年 1 月 14 日
0.0.4 2018 年 9 月 11 日
0.0.3 2018 年 7 月 18 日
0.0.2 2018 年 6 月 26 日
0.0.1 2018 年 6 月 12 日

#110 in #rng

Download history 18/week @ 2024-03-13 10/week @ 2024-03-27 20/week @ 2024-04-03 9/week @ 2024-04-24 181/week @ 2024-05-01 118/week @ 2024-05-08 1081/week @ 2024-05-15 359/week @ 2024-05-22 635/week @ 2024-05-29 154/week @ 2024-06-05 874/week @ 2024-06-12 642/week @ 2024-06-19 133/week @ 2024-06-26

1,827 每月下载量
用于 2 crates

MIT/Apache

52KB
1K SLoC

xoshiro

该包已被废弃,推荐使用 rand_xoshiro 包。

Status

Rust 实现的 xoshiro、xoroshiro 和 splitmix64 随机数生成器。

许可证

xoshiro 主要在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。

请参阅 LICENSE-APACHE 和 LICENSE-MIT 以获取详细信息。


lib.rs:

此包实现了 David Blackman 和 Sebastiano Vigna 设计的 xoshiro 系列伪随机数生成器。它们具有高性能和小状态,优于之前的 xorshift 基于生成器。但是,它们不是加密安全的,并且其输出可以通过观察少量样本来预测。

以下生成器已实现

64 位生成器

  • Xoshiro256StarStar:推荐用于所有目的。速度优异,状态空间(256 位)足够任何并行应用使用。
  • Xoshiro256Plus:推荐用于生成 64 位浮点数。比 Xoshiro256StarStar 快约 15%,但最低位(在生成浮点数时丢弃)具有 低线性复杂度,使其无法通过线性测试。这在实践中不太可能产生影响。
  • Xoroshiro128StarStar:是 Xoshiro256StarStar 的替代品,具有相同的速度,但使用一半的状态。仅适用于低级并行应用。
  • Xoroshiro128Plus:是 Xoshiro256Plus 的替代品,具有相同的速度,但使用一半的状态。仅适用于低级并行应用。最低位(在生成浮点数时丢弃)具有 低线性复杂度,使其无法通过线性测试。这在实践中不太可能产生影响。
  • Xoshiro512StarStar:是Xoshiro256StarStar的替代品,具有更多状态和相同的速度。
  • Xoshiro512Plus:是Xoshiro512Plus的替代品,具有更多状态和相同的速度。在最低位(在生成浮点数时被丢弃)具有低线性复杂度,导致它未能通过线性测试。这在实践中不太可能产生影响。
  • SplitMix64:建议用于从64位种子初始化xoshiro系列的生成器。用于实现seed_from_u64

32位生成器

  • Xoshiro128StarStar:适用于所有目的。速度非常快。
  • Xoshiro128Plus:建议用于生成32位浮点数。比Xoshiro128StarStar快,但在最低位(在生成浮点数时被丢弃)具有低线性复杂度,导致它未能通过线性测试。这在实践中不太可能产生影响。
  • Xoroshiro64StarStar:是Xoshiro128StarStar的替代品,速度相同,但状态减半。
  • Xoroshiro64Star:是Xoshiro128Plus的替代品,速度相同,但状态减半。在最低位(在生成浮点数时被丢弃)具有低线性复杂度,导致它未能通过线性测试。这在实践中不太可能产生影响。

依赖项

~180KB