Java:间隔中的随机长值

Min*_*ntz 13 java random intervals long-integer

可能重复:
Java:0 <= x <n范围内的随机长数

我想在一个区间中生成一个随机长值,但似乎Random类nextLong()不接受像nextInt()这样的参数.我能在这做什么?

Yog*_*ngh 27

如果您想要基于范围的长值,请执行以下操作:

 long LOWER_RANGE = 0; //assign lower range value
 long UPPER_RANGE = 1000000; //assign upper range value
 Random random = new Random();


 long randomValue = LOWER_RANGE + 
                           (long)(random.nextDouble()*(UPPER_RANGE - LOWER_RANGE));
Run Code Online (Sandbox Code Playgroud)

  • 你为什么不用nextLong()? (3认同)
  • +1 值得注意的是,Random 使用 48 位种子,因此它不会生成所有可能的 `double` 或 `long`。SecureRandom 很慢,但会生成所有可能的值。 (2认同)