I test the code as you write and I note some thing my be explain the result , I think you find it 5 every time.

if you write the code like this you will get a random numbers "I chance the range to 10 rather than 8" ------------------------------- for (int i = 0; i < 10; i ++ ) { Random r = new Random(i); System.out.println(r.nextInt(10)); } ------------------------------- but note that if you run the code many times the random numbers generated in the same sequence , the algorithm are fixed , so most probably the value of the number used as a range used in the fixed algorithm to generate the random numbers , and because 8 is a very small number maybe the algorithm has some conditions make the result every time the same small number.

8 is a power of 2, and the source code for Random shows that powers of 2 are handled by a special case (http://javasourcecode.org/html/open-source/jdk/jdk-5.0/java/util/Random.java.html).

## 2 comments:

I test the code as you write and I note some thing my be explain the result , I think you find it 5 every time.

if you write the code like this

you will get a random numbers "I chance the range to 10 rather than 8"

-------------------------------

for (int i = 0; i < 10; i ++ )

{

Random r = new Random(i);

System.out.println(r.nextInt(10));

}

-------------------------------

but note that if you run the code many times the random numbers generated in the same sequence , the algorithm are fixed , so most probably the value of the number used as a range used in the fixed algorithm to generate the random numbers , and because 8 is a very small number maybe the algorithm has some conditions make the result every time the same small number.

8 is a power of 2, and the source code for Random shows that powers of 2 are handled by a special case (http://javasourcecode.org/html/open-source/jdk/jdk-5.0/java/util/Random.java.html).

Post a Comment