HiveBrain v1.2.0
Get Started
← Back to all entries
gotchajavaCritical

Why does this code using random strings print "hello world"?

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
randomwhyusingstringsdoesprintworldthishellocode

Problem

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();
}

Solution

When java.util.Random is instantiated 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.

Context

Stack Overflow Q#15182496, score: 955

Revisions (0)

No revisions yet.