java - 如何在 Java 中生成 X 和 Y 之间的随机长?

标签 java random

对不起,如果这是显而易见的,但我不太明白。为什么 Random 类没有简单的 Random.nextInt(min, max)Random.nextLong(min, max) 方法?这种神秘且过于不直观的做事方式是怎么回事?

例如,我看过如何在 1100 之间获取随机 int 的示例,但我无法理解找出如何为 long 执行此操作。有人可以说明这一点,并解释以这种令人困惑的方式完成这项工作的必要性吗...?

最佳答案

正如其他人所说,您可以只使用 lower + random * (upper-lower+1) 公式。为什么这样行得通应该很明显,但如果行不通,请尝试通过几个示例。此外,如果您有一个公式可以在两个数字之间获取一个整数,那么该公式也适用于长整型。当您尝试时发生了什么?

但是,如果您真的想要一种开箱即用的方法来执行此操作,Java 8 会向 Random 类添加一个方法,该方法为您提供范围内的随机长值:http://docs.oracle.com/javase/8/docs/api/java/util/Random.html#longs-long-long-long-

关于java - 如何在 Java 中生成 X 和 Y 之间的随机长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22968914/

相关文章:

r - 生成总和为固定值的非负(或正)随机整数

python - 在 For 循环中比较列表中的值; Python

random - 如何从数组中随机且不重复地选择元素?

javascript - 种子随机数

java - 我可以在编译时从注释处理器中的 TypeVariable 或 VariableElement 获取底层类上的方法列表吗

java - System.arraycopy 返回 arrayoutofboundsexception

java - 如何使用 UriComponentsBuilder 对 URI 中的路径部分进行编码?

java - 捕获在 lambda 中抛出的 RuntimeException 并在检查时重新抛出它

PHP选择带权重的随机数

java - 这两个for循环的复杂度是多少?