为什么结果是Hello World?

时间:2017-08-07 04:02:30

标签: java

我看到了这段代码:

public class HelloWorld {

    public static void main(String ... args)           
    {
        System.out.println(randomString(-229985452)+''+randomString(-147909649));
    }

    public static String randomString(int seed) 
    {
        Random rand = new Random(seed);
        StringBuilder sb = new StringBuilder();
        while(true) {
            int n = rand.nextInt(27);
            if (n == 0) break;
            sb.append((char) ('`' + n));
        }
        return sb.toString();
    }
}

,工作结果如下: 你好世界

我想知道它为什么是

1 个答案:

答案 0 :(得分:0)

随机数不是随机数,而是伪随机数。您可以搜索他们遵循的伪随机路径,寻找小模式。

在这种情况下,模式是'hello world'。

如果你从另一个seed开始,那么你会得到废话;但是,既然你开始使用一个已知可以走hello world的下一个字符的种子,那么你将获得hello world