Can anybody please explain why the below code gives output 0 1 2 3 4 5 6 7 8 9
.
Random random = new Random(-6732303926L);
for(int i=0;i<10;i++)
System.out.println(random.nextInt(10)+" ");
From Java API Random I can see constructor Random(long seed)
creates a new random number generator using a single long seed
. So, this will be random again, why this gves a fixed output every time?
From Java API Random I can see constructor Random(long seed) creates a new random number generator using a single long seed. So, this will be random again, why this gves a fixed output every time?
A seed is used to generate the same output (from random operations) in different runs of the program. So, each time you create the Random
object with the same seed, it will output the same result.
Note:
The seed you chose has a particular output, that is 0 1 2 3 4 5 6 7 8 9
, but it doesn't mean anything. There will also be some other seeds with that same output.
It gives a fixed output every time because you are using the same seed. The particular seed you are using happens to give the sequential output: 0 1 2 3 4 5 6 7 8 9
.
Every weird sequence has a non-zero probability of occurring :)