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

car*_*ing 5 java random

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

例如,我见过如何int1和 之间获得随机数的示例100,但我不知道如何为 a 做到这long一点。有人可以说明这一点,并解释一下以如此令人困惑的方式完成这件事的必要性吗?

Kev*_*man 4

正如其他人所说,您可以使用 lower + random * (upper-lower+1) 公式。这样做的原因应该是非常明显的,但如果不行,请尝试通过一些示例来解决。另外,如果您有一个公式来获取两个数字之间的整数,那么相同的公式也适用于长整型。当你尝试时发生了什么?

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