16

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

I want to generate a random long value in an interval but it seems that the Random class nextLong() doesn't accept arguments like nextInt(). What can I do here?

Community
  • 1
  • 1
Mintz
  • 929
  • 2
  • 11
  • 17

2 Answers2

27

If you want range based long values then do the below:

 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));
Yogendra Singh
  • 33,927
  • 6
  • 63
  • 73
2

You could use nextInt to generate higher and lower ints of the long. It's even possible to extend the Random-class with your own nextLong-method (even though composition could be a safer choice for more serious programming).

Take a look at the Javadoc of nextInt(int n). A nextLong method could be implemented using the same algorithm. Getting it right could prove a bit tricky. Prepare to do some math with pen and paper. Using a proven library is wise if you're not just coding for fun.

COME FROM
  • 2,497
  • 1
  • 14
  • 11