解读random()生成随机数
随机数,我们都很常见,如何生成,也很简单,但是不仅要会生成,还要了解。
其中random()中有一个参数:
- seed:表示指定随机生成器的种子。
例如:
随机从0-10生成五个随机数
public class random{public static void main(String[]args){Random r1 = new Random();for(int i = 0; i<5; i++){System.out.println(r1.nextInt(10));;}}
}
结果:
提问一:要是同时生成两组随机数,结果会一样吗?答案是no
public class random{public static void main(String[]args){Random r1=new Random(2);for(int i =0 ;i<5;i++){System.out.println(r1.nextInt(10));;}System.out.println("---------");Random r2=new Random();for(int i=0;i<5;i++){System.out.println(r2.nextInt(10));;}}
}
结果:
为什么会不一样?
答案是:默认的情况下,seed是与时间戳有关的,当执行第二个random函数时,时间已经变化。
那么如果设定seed的时候,两种随机数会一样吗?答案是yes
public class random{public static void main(String[]args){Random r1=new Random(5);for(int i =0 ;i<5;i++){System.out.println(r1.nextInt(10));;}System.out.println("---------");Random r2=new Random(5);for(int i=0;i<5;i++){System.out.println(r2.nextInt(10));;}}
}
结果:
解读random()生成随机数
随机数,我们都很常见,如何生成,也很简单,但是不仅要会生成,还要了解。
其中random()中有一个参数:
- seed:表示指定随机生成器的种子。
例如:
随机从0-10生成五个随机数
public class random{public static void main(String[]args){Random r1 = new Random();for(int i = 0; i<5; i++){System.out.println(r1.nextInt(10));;}}
}
结果:
提问一:要是同时生成两组随机数,结果会一样吗?答案是no
public class random{public static void main(String[]args){Random r1=new Random(2);for(int i =0 ;i<5;i++){System.out.println(r1.nextInt(10));;}System.out.println("---------");Random r2=new Random();for(int i=0;i<5;i++){System.out.println(r2.nextInt(10));;}}
}
结果:
为什么会不一样?
答案是:默认的情况下,seed是与时间戳有关的,当执行第二个random函数时,时间已经变化。
那么如果设定seed的时候,两种随机数会一样吗?答案是yes
public class random{public static void main(String[]args){Random r1=new Random(5);for(int i =0 ;i<5;i++){System.out.println(r1.nextInt(10));;}System.out.println("---------");Random r2=new Random(5);for(int i=0;i<5;i++){System.out.println(r2.nextInt(10));;}}
}
结果: