随机函数的问题
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使这个伪随机变的更假了