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

我需要在 Java/Kotlin(适用于 Android)中生成随机数,特别是使用 Mersenne Twister 算法。我已经尝试使用 Apache commons-math Mersenne Twister 实现,它非常适合生成随机整数。但是我需要为这些指定一个相当小的范围,整数必须在 1 到 100 之间。

似乎无法使用 Apache 实现来指定上限和下限。有谁知道 Java/Kotlin 的任何替代 Mersenne Twister 选项接受生成的 nextInt 的界限?


梵蒂冈之花
浏览 102回答 1
1回答

森栏

据我所知,您可以将生成的 int 的上边界传递给 nextInt 方法,因此可以像这样编写简单的扩展函数:fun MersenneTwister.nextInt(min: Int, max: Int) = min + nextInt(max - min)请注意,像 MT 的 nextInt 结果不包括上边界,因此如果您需要此行为,您可能需要将 1 添加到 nextInt 的参数。另外注意,这个功能我没有测试好,所以在使用之前自己动手吧。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java