Java随机数
随机数生成通常用到java.util.Random类和Math类中的random()方法。
1、Java中Random类生成随机数
(1)Random类中常用方法:
1)Random类有两个构造方法:public Random()和public Random(long seed)。
Random()方法将当前系统时间设置为种子,Random(long seed)是为随机数生成器设定指定的种子。 Random r1 = new Random(seed) ;等同于Random r2 = new Random(); r2.setSeed(seed);
2)nextInt(); 此方法返回随机数生成序列中(随机分布的)的下一个int值。
3)nextInt(int i); 为随机数生成指定范围,参数i即为随机数生成器生成随机数的范围(0到i,包括0但不包括i其中i必须为正数)。
4)nextDouble(); 返回0.0到1.0之间(包括0.0不包括1.0)的随机数。
(2)Random类生成随机数如果设置的种子相同,那么生成的随机数序列相同。可以用如下方法验证:
public static void main(String[] arg0){
Random random1 = new Random(10);
Random random2 = new Random(20);
Random random3 = new Random();
Random random4 = new Random();
Random random5 = new Random();
Random random6 = new Random();
for (int i = 0;i<10;i++){
System.out.print(random1.nextInt(10)+",");
}
System.out.println();
for(int j=0;j<10;j++){
System.out.print(random2.nextInt(15)+",");
}
System.out.println();
for(int k=0;k<10;k++){
System.out.print(random3.nextInt(10)+",");
}
System.out.println();
random4.setSeed(20);
for(int j=0;j<10;j++){
System.out.print(random4.nextInt(15)+",");
}
System.out.println();
for(int k=0;k<10;k++){
System.out.print(random5.nextInt(10)+",");
}
System.out.println();
for(int k=0;k<10;k++){
System.out.print(random6.nextDouble()+",");
}
System.out.println();
for(int k=0;k<10;k++){
System.out.print(random2.nextDouble()+",");
}
System.out.println();
for(int k=0;k<10;k++){
System.out.print(random4.nextDouble()+",");
}
}
2、Math类中的random()(静态)方法生成随机数。
调用Math.random(); 相当于 new java.util.Random(); 其返回值为double类型,相当于调用Random类中的netDouble()方法。
使用该方法生成随机数较为方便。