我需要在 Java/Kotlin(适用于 Android)中生成随机数,特别是使用 Mersenne Twister 算法。我已经尝试使用 Apache commons-math Mersenne Twister 实现,它非常适合生成随机整数。但是我需要为这些指定一个相当小的范围,整数必须在 1 到 100 之间。似乎无法使用 Apache 实现来指定上限和下限。有谁知道 Java/Kotlin 的任何替代 Mersenne Twister 选项接受生成的 nextInt 的界限?
1 回答
森栏
TA贡献1810条经验 获得超5个赞
据我所知,您可以将生成的 int 的上边界传递给 nextInt 方法,因此可以像这样编写简单的扩展函数:
fun MersenneTwister.nextInt(min: Int, max: Int) = min + nextInt(max - min)
请注意,像 MT 的 nextInt 结果不包括上边界,因此如果您需要此行为,您可能需要将 1 添加到 nextInt 的参数。
另外注意,这个功能我没有测试好,所以在使用之前自己动手吧。
添加回答
举报
0/150
提交
取消