Mar*_*ler 0 java random linux-mint
所以这是人们可能做的最简单的事情之一:
Random rng = new Random();
int a = rng.nextInt(10);
int b = rng.nextInt(10);
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但我们希望避免使用相等的a和b,所以我们自然会这样做:
Random rng = new Random();
int a = rng.nextInt(10);
int b = rng.nextInt(10);
while (a == b){
b = rng.nextInt(10);
}
Run Code Online (Sandbox Code Playgroud)
然而 - 对我非常非常惊讶 - while循环永远不会退出.决不.
我理解,从理论上讲,随机数字可以包含一个数字的无限序列.但是我已经让这段代码运行了10分钟而且它还没有退出循环.
怎么了?我在最新的Linux Mint上运行JDK 6 Update 16.
Random rng = new Random();
int a = rng.nextInt(10);
int b = rng.nextInt(9);
if (b >= a) ++b;
Run Code Online (Sandbox Code Playgroud)
问题解决了!