10个版本
| 0.5.0-alpha.3 | 2024年7月31日 |
|---|---|
| 0.5.0-alpha.1 | 2024年3月18日 |
| 0.5.0-alpha.0 | 2024年2月18日 |
| 0.4.3 | 2022年1月18日 |
| 0.2.1 |
|
#897 in 算法
1,823,117 每月下载量
用于 1,931 个crate (483 直接)
605KB
11K SLoC
rand_distr
实现了随机数分布采样的完整套件。
这个crate是rand::distr模块的超集,包括从Beta、二项、柯西、卡方、Dirichlet、指数、FisherF、伽玛、几何、超几何、逆高斯、对数正态、正态、帕累托、PERT、泊松、学生T、三角和威布尔分布中进行采样。还支持从单位球、单位圆、单位圆盘和单位球面的表面上进行采样。
值得一提的是statrs crate,它提供了类似的功能,以及各种支持函数,包括PDF和CDF计算。相比之下,这个rand_distr crate专注于从分布中进行采样。
可移植性和libm
使用来自num_traits和libm的浮点函数来支持no_std环境并确保可重复性。如果更喜欢来自std的浮点函数,这可能会提供更好的精度和性能,但可能会产生不同的随机值,可以启用std_math功能。(注意,任何依赖于num-traits的crate,具有具有std功能(默认启用)的crate都将产生相同的效果。)
crate功能
std(默认启用):rand_distr为其错误类型实现了Errortrait。意味着alloc和rand/std。alloc(默认启用):在不使用std时(特别是Dirichlet和WeightedAliasIndex)需要。std_math:关于可移植性和libm的说明见上文serde:使用serde实现序列化和反序列化
链接
许可证
rand_distr 在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。
有关详细信息,请参阅 LICENSE-APACHE、LICENSE-MIT 和 COPYRIGHT。
依赖项
~1–1.7MB
~29K SLoC