相关疑难解决方法(0)

为什么这段代码使用随机字符串打印"hello world"?

以下print语句将打印"hello world".有人能解释一下吗?

System.out.println(randomString(-229985452) + " " + randomString(-147909649));
Run Code Online (Sandbox Code Playgroud)

而且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();
}
Run Code Online (Sandbox Code Playgroud)

java string random

1733
推荐指数
14
解决办法
19万
查看次数

java中的随机gen方法似乎并不随机

可能重复:
Java Java中的真随机生成
随机总是在我设置种子时返回相同的数字?

我在我的一个程序中运行这段代码.

public String[] gen_phase_zero() {
        Random generator = new Random();
        int r = generator.nextInt(2);
        if (r == 1) {
            String big = "A";
            String small = "a";
            return new String[] { big, small };
        } else {
            String big = "B";
            String small = "b";
            return new String[] { big, small };
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果我运行这几次我的输出是这样的.

Aa Aa Aa Aa Bb Aa Aa Aa Bb

按顺序它并不是真的.但它几乎从未接近50/50

更新:

我不是在考虑五十五,但似乎如果首先选择"Aa",那么它将接下来大约3次,但如果首先选择Bb,那么它也将在接下来的三次被选中.

java random

2
推荐指数
1
解决办法
350
查看次数

标签 统计

java ×2

random ×2

string ×1