Why does this code using random strings print “hello world”?
The following print statement would print "hello world". Could anyone explain this?
System.out.println(randomString(-229985452) + " " + randomString(-147909649));
And
randomString()
looks like this:public static String randomString(int i)
{
Random ran = new Random(i);
StringBuilder sb = new StringBuilder();
while (true)
{
int k = ran.nextInt(27);
if (k == 0)
break;
sb.append((char)('`' + k));
}
return sb.toString();
}
answer:
When an instance of
java.util.Random
is constructed with a specific seed parameter (in this case -229985452
or -147909649
), it follows the random number generation algorithm beginning with that seed value.
Every
Random
constructed with the same seed will generate the same pattern of numbers every time.
http://stackoverflow.com/questions/15182496/why-does-this-code-using-random-strings-print-hello-world
COMMENTS