I am trying to generate a random integer with Java, but random in a specific range. For example, my range is 5-10, meaning that 5 is the smallest possible value the random number can take, and 10 is the biggest. Any other number in between these numbers is possible to be a value, too.
In Java, there is a method
random() in the
Math class, which returns a
double value between 0.0 and 1.0. In the class
Random there is a method
nextInt(int n), which returns a random integer value in the range of 0 (inclusive) and n (exclusive). I couldn't find a method, which returns a random integer value between two numbers.
I have tried the following things, but I still have problems: (minimum and maximum are the smallest and biggest numbers).
randomNum = minimum + (int)(Math.random()*maximum);
randomNum is assinged values numbers bigger than
Random rn = new Random();
int n = maximum - minimum + 1;
int i = rn.nextInt() % n;
randomNum = minimum + i;
randomNum is assigned values smaller than
How do I solve this problem?
I have tried also browsing through the archive and found:
- Expand a random range from 1–5 to 1–7
- Generate random numbers uniformly over an entire range
But I couldn't solve the problem.
- asked 8 years ago
- B Butts