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

标签 java apache kotlin

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

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

最佳答案

据我所知,您可以将生成的 int 的上限传递给 nextInt 方法,因此可以编写这样的简单扩展函数:

fun MersenneTwister.nextInt(min: Int, max: Int) = min + nextInt(max - min)

请注意,像 MT 的 nextInt 结果不包含上限,因此如果需要此行为,您可能需要向 nextInt 的参数添加 1。

另请注意,我没有很好地测试此功能,所以在使用之前请自行测试。

关于java - 是否可以在 Mersenne Twister RNG (Java) 中指定 nextInt 的上限和下限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56903791/

相关文章:

java - 如何利用 Java Web 服务获得 Nginx 优势

android - 如何通过代码(动态)将子级添加到GridLayout?

java - 无法启动模拟器

java - Hibernate 中的 @onetomany 注释不正确

apache - 如何让我的 nextjs with Express 站点在 ssl 上工作

java - 根据名称查找子目录和目录

java - java 类的重命名如何影响 git 状态?

找不到 Javah 错误

android - Flutter:使用 Kotlin 创建 Flutter 项目

android - 为什么我的数据类给出空值,除非我对其应用默认值?