#java #random

jandom

Java.util.Random的移植

7个版本

0.3.4 2022年7月27日
0.3.3 2022年7月26日
0.2.0 2022年2月16日
0.1.0 2022年1月19日

#2369 in 算法

34 每月下载量

MIT/Apache

275KB
5.5K SLoC

C 5K SLoC // 0.4% comments Rust 252 SLoC // 0.0% comments Java 117 SLoC

jandom

Java java.util.Random 到 Rust的移植。

实现遵循Java 17 Random的公共API。方法签名已更改,以更符合Rust风格,例如,nextInt -> next_i32nextDouble -> next_f64nextGaussian -> next_gaussian等。Jandom与其他java Random实现的不同之处在于具有真正的特性兼容性,即使是next_gaussian方法也返回与Java等效的相同值。

Jandom通过原子操作和互斥锁默认实现线程安全。

示例用法可以在examples目录中找到。

贡献

如果您在此与Java实现之间发现任何差异,请 提交一个Issue

许可

代码已在MIT和Apache 2.0下许可,以遵循 Rust API指南


lib.rs:

使用与java.util.Random相同的算法和参数实现的伪随机数生成器。

此crate与Java 17实现中的Random具有功能兼容性。crate包括fdlibm(免费可分发的libm)的源代码,该代码被Java中的StrictMath使用。

依赖关系

~230KB