Java random numbers not random?
java, random
Solution
You have seeded the random generator with a constant value `100`. It's deterministic, so that will generate the same values each run.
I'm not sure why you chose to seed it with `100`, but the seed value has nothing to do with the range of values that are generated (that's controlled by other means, such as the call to `nextInt` that you already have).
To get different values each time, use the `Random` constructor with no arguments, which uses the system time to seed the random generator.
Quoting from the Javadoc for the parameterless `Random` constructor:
Creates a new random number generator. This constructor sets the seed of the random number generator to a value very likely to be distinct from any other invocation of this constructor.
Quoting the actual code in the parameterless `Random` constructor:
public Random() {
this(seedUniquifier() ^ System.nanoTime());
}
Problem
I was trying to explain the random number generator in Java to a friend when he kept getting the same numbers every time he ran the program. I created my own simpler version of the same thing and I too am getting the same exact numbers he was getting every time I run the program. What am I doing wrong? ``` import java.util.*; public class TestCode{ public static void main(String[] args){ int sum = 0; Random rand = new Random(100); for(int x = 0; x < 100; x++){ int num = (rand.nextInt(100)) + 1; sum += num; System.out.println("Random number:" + num); } //value never changes with repeated program executions. System.out.println("Sum: " + sum); } } ``` The final five numbers out of the 100 are: ``` 40 60 27 56 53 ```