Java:间隔中的随机长值

Java: Random long value in an interval

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Java: random long number in 0 <= x < n range

我想在一个间隔中生成一个随机的长值,但是这个随机类nextlong()似乎不接受nextint()这样的参数。我能在这里做什么?


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

1
2
3
4
5
6
7
 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));


你可以使用nextint来产生更高和更低的整数。甚至可以使用自己的nextlong方法扩展随机类(即使对于更严肃的编程来说,组合可能是更安全的选择)。

看看nextint(int n)的javadoc。nextlong方法可以使用相同的算法实现。把它弄好可能会有点棘手。准备用笔和纸做一些数学题。如果您不只是为了好玩而编码,那么使用一个经过验证的库是明智的。