我有一段代码生成一些随机数并在控制台上打印出来.但是我很好奇它打印的图案,例如,
import java.util.*;
public class Test
{
public static void main(String[] args)
{
Random random = new Random(-6732303926L);
for(int i=0;i<10;i++)
System.out.println(random.nextInt(10)+" ");
}
}
Run Code Online (Sandbox Code Playgroud)
结果:0 1 2 3 4 5 6 7 8 9 - 新行中的每个数字.
如果你改变这个代码!喜欢,
import java.util.*;
public class Test
{
public static void main(String[] args)
{
Random random = new Random(-6732303926L);
for(int i=0;i<10;i++)
System.out.println(random.nextInt(11)+" ");
}
}
Run Code Online (Sandbox Code Playgroud)
结果:8 9 2 2 10 3 8 7 0 10 - 新行中的每个数字.
0123456789的原因是什么,它根本不是随机的!?
Jon*_*eet 10
0123456789也是随机的,在这种情况下 - 它很可能会出现在14235682907,这无疑不会给你任何担忧.
你基本上发现了侥幸.如果您在第一种情况下打印下 10个数字,则它们不会保留任何明显的顺序.
这就像掷硬币一样 - HHHHHHHH的模式可能与HHTHTTHH的确切模式一样; 有一个1 2 8各自的机会来了,因为在任何的8个步骤有它的50%的机会会错.但是第一个模式看起来像是坏了,而第二个模式却没有.
| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |