1. ホーム
  2. java

[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?

2022-03-17 11:33:22

質問

以下のprint文は、"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();
}

解決方法は?

のインスタンスが java.util.Random は、特定のシードパラメータ(この場合は -229985452 または -147909649 ) の場合、乱数生成アルゴリズムに従います。 始まり は、そのシード値で

すべての Random 同じ種で構築されたものは、毎回同じパターンの数字を生成します。