随机数,我们都很常见,如何生成,也很简单,但是不仅要会生成,还要了解。
其中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));;
}
}
}
结果: