为什么这个代码使用随机字符串打印“你好世界”?

问题:

以下打印声明将打印“hello world”。
有人可以解释一下吗

System.out.println(randomString(-229985452) + " " + randomString(-147909649));

randomString()如下所示:

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

回答:

当使用特定种子参数(在这种情况下为-229985452-147909649)构造java.util.Random的实例时,它遵循具有该种子值的随机数生成算法beginning
每个用相同种子构造的Random每次都会生成相同的数字模式。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Why does this code using random strings print “hello world”?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

13 + = 18