为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在 Mersenne Twister RNG(Java)中指定 nextInt 的上限和下限

是否可以在 Mersenne Twister RNG(Java)中指定 nextInt 的上限和下限

梵蒂冈之花 2023-03-09 15:22:35
我需要在 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 的参数。

另外注意,这个功能我没有测试好,所以在使用之前自己动手吧。


查看完整回答
反对 回复 2023-03-09
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信