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

EGH*_*HDK 2 java random

可能重复:
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,那么它也将在接下来的三次被选中.

Jon*_*eet 5

嗯,这对我来说不是太糟糕.让我们创建一个更具统计意义的测试:

import java.util.Random;

public class Test {
    public static void main(String[] args) throws Exception {

        Random rng = new Random();
        int total = 0;
        for (int i = 0; i < 1000000; i++) {
            total += rng.nextInt(2);
        }
        System.out.println("Total: " + total);
    }
}
Run Code Online (Sandbox Code Playgroud)

5次运行的示例输出:

Total: 501184
Total: 499740
Total: 500116
Total: 500374
Total: 500413
Run Code Online (Sandbox Code Playgroud)

看起来不是偏向我......

new Random()在循环内部调用时得到了相同的结果,而不仅仅是一次 - 尽管这样做并不是一个好主意.