Generating a Random Number between 1 and 10 Java?
max
min
random.nextInt(max - min + 1) + min
As the documentation says, this method call returns "a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)". This means that you will get numbers from 0 to 9 in your case. So you've done everything correctly by adding one to that number.
Generating a Random Number between 1 and 10 Java?
/** * Returns a psuedo-random number between min and max, inclusive. * The difference between min and max can be at most * <code>Integer.MAX_VALUE - 1</code>. * * @param min Minimim value * @param max Maximim value. Must be greater than min. * @return Integer between min and max, inclusive. * @see java.util.Random#nextInt(int) */ public static int randInt(int min, int max) { // Usually this can be a field rather than a method variable Random rand = new Random(); // nextInt is normally exclusive of the top value, // so add 1 to make it inclusive int randomNum = rand.nextInt((max - min) + 1) + min; return randomNum; }
As explained by Aurund, Random objects created within a short time of each other will tend to produce similar output, so it would be a good idea to keep the created Random object as a field, rather than in the method as I have done (for explanation purposes only).
Random rand = new Random(); I would go so far as to say that it must be a field. Random objects created within a short time of each other will tend to produce similar output. So many calls to randInt within a short period of time will not give evenly distributed output.
The standard way to do this is as follows:
Generating a Random Number between 1 and 10 Java?
max
min
random.nextInt(max - min + 1) + min
As the documentation says, this method call returns "a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)". This means that you will get numbers from 0 to 9 in your case. So you've done everything correctly by adding one to that number.
Generating a Random Number between 1 and 10 Java?
/** * Returns a psuedo-random number between min and max, inclusive. * The difference between min and max can be at most * <code>Integer.MAX_VALUE - 1</code>. * * @param min Minimim value * @param max Maximim value. Must be greater than min. * @return Integer between min and max, inclusive. * @see java.util.Random#nextInt(int) */ public static int randInt(int min, int max) { // Usually this can be a field rather than a method variable Random rand = new Random(); // nextInt is normally exclusive of the top value, // so add 1 to make it inclusive int randomNum = rand.nextInt((max - min) + 1) + min; return randomNum; }
As explained by Aurund, Random objects created within a short time of each other will tend to produce similar output, so it would be a good idea to keep the created Random object as a field, rather than in the method as I have done (for explanation purposes only).
Random rand = new Random(); I would go so far as to say that it must be a field. Random objects created within a short time of each other will tend to produce similar output. So many calls to randInt within a short period of time will not give evenly distributed output.
The standard way to do this is as follows:
Generating a Random Number between 1 and 10 Java?
Random rn = new Random(); for(int i =0; i < 100; i++) { int answer = rn.nextInt(10) + 1; System.out.println(answer); }
import java.util.Random;
Random rn = new Random(); for(int i =0; i < 100; i++) { int answer = rn.nextInt(10) + 1; System.out.println(answer); }
import java.util.Random;
Also if you change the number in parenthesis it will create a random number from 0 to that number -1 (unless you add one of course like you have then it will be from 1 to the number you've entered).
This will work for generating a number 1 - 10. Make sure you import Random at the top of your code.
why is this i < 100 inside parenthesis of for? It should be 10
Discussion