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?
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));
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With