当前位置: 代码迷 >> Java相关 >> 随机函数的有关问题
  详细解决方案

随机函数的有关问题

热度:6681   发布时间:2013-02-25 21:43:41.0
随机函数的问题
                Random r1 = new Random(10);
Random r2 = new Random(10);
System.out.println(r1.nextInt(10));
System.out.println(r1.nextInt(10));
System.out.println(r1.nextInt(10));
System.out.println(r2.nextInt(10));
System.out.println(r2.nextInt(10));
System.out.println(r2.nextInt(10));

这样子运行出来的随机数是一样的,为什么啊?求高手指教
------最佳解决方案--------------------------------------------------------
1、种子一样,你可以用for循环i当种子。
2、因为运行速度太快了,java取随机数是把种子和时间一起运算的,你用在每个中间插入Thread.sleep(10),再试试看。
------其他解决方案--------------------------------------------------------
new Random(10);两个Random都用的同一个seed. 所以随机数相同.
------其他解决方案--------------------------------------------------------
Random r1 = new Random();
Random r2 = new Random();System.out.println(r1.nextInt(10));
System.out.println(r1.nextInt(10));
System.out.println(r1.nextInt(10));
System.out.println(r2.nextInt(10));
System.out.println(r2.nextInt(10));
System.out.println(r2.nextInt(10));
这样写就不一样了 楼主这样的写法有人解释过 忘了 我就记住了这个是正确的


------其他解决方案--------------------------------------------------------
大家帮帮吗把
------其他解决方案--------------------------------------------------------
请问seed有什么作用啊?
------其他解决方案--------------------------------------------------------
刚试了一下,和时间没关系,呵呵,上面说错了,不好意思。
你可以把时间做种子,这样可以每次运行都不一样。
------其他解决方案--------------------------------------------------------


谢谢大家了   只能说这个seed使这个伪随机变的更假了
  相关解决方案