10个版本

0.5.0-alpha.32024年7月31日
0.5.0-alpha.12024年3月18日
0.5.0-alpha.02024年2月18日
0.4.3 2022年1月18日
0.2.1 2019年6月28日

#897 in 算法

Download history 272488/week @ 2024-05-02 291041/week @ 2024-05-09 286717/week @ 2024-05-16 311362/week @ 2024-05-23 381970/week @ 2024-05-30 398775/week @ 2024-06-06 374053/week @ 2024-06-13 416524/week @ 2024-06-20 446897/week @ 2024-06-27 374476/week @ 2024-07-04 398067/week @ 2024-07-11 412521/week @ 2024-07-18 439096/week @ 2024-07-25 420833/week @ 2024-08-01 432645/week @ 2024-08-08 448440/week @ 2024-08-15

1,823,117 每月下载量
用于 1,931 个crate (483 直接)

MIT/Apache

605KB
11K SLoC

rand_distr

Test Status Latest version Book API API

实现了随机数分布采样的完整套件。

这个crate是rand::distr模块的超集,包括从Beta、二项、柯西、卡方、Dirichlet、指数、FisherF、伽玛、几何、超几何、逆高斯、对数正态、正态、帕累托、PERT、泊松、学生T、三角和威布尔分布中进行采样。还支持从单位球、单位圆、单位圆盘和单位球面的表面上进行采样。

值得一提的是statrs crate,它提供了类似的功能,以及各种支持函数,包括PDF和CDF计算。相比之下,这个rand_distr crate专注于从分布中进行采样。

可移植性和libm

使用来自num_traitslibm的浮点函数来支持no_std环境并确保可重复性。如果更喜欢来自std的浮点函数,这可能会提供更好的精度和性能,但可能会产生不同的随机值,可以启用std_math功能。(注意,任何依赖于num-traits的crate,具有具有std功能(默认启用)的crate都将产生相同的效果。)

crate功能

  • std(默认启用):rand_distr为其错误类型实现了Error trait。意味着allocrand/std
  • alloc(默认启用):在不使用std时(特别是DirichletWeightedAliasIndex)需要。
  • std_math:关于可移植性和libm的说明见上文
  • serde:使用serde实现序列化和反序列化

许可证

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

有关详细信息,请参阅 LICENSE-APACHELICENSE-MITCOPYRIGHT

依赖项

~1–1.7MB
~29K SLoC