Java:间隔中的随机长值

时间:2012-12-05 14:30:03

标签: java random long-integer intervals

  

可能重复:
  Java: random long number in 0 <= x < n range

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

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分:2)

您可以使用nextInt生成较长和较低的整数。甚至可以使用您自己的nextLong方法扩展Random-class(即使组合可能是更严肃编程的更安全选择)。

看一下nextInt(int n)的Javadoc。可以使用相同的算法实现nextLong方法。做得对可能有点棘手。准备用笔和纸做一些数学。如果您不仅仅是为了好玩而编译,那么使用经过验证的库是明智的。