14.5 Random类
Random类 (java.util),生成随机数的类。
Random 类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。
相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。
1、Random对象的生成
Random类包含两个构造方法:
public Random(); 该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造Random对象。
Random r = new Random();public Random(long seed); 该构造方法可以通过制定一个种子数进行创建。
Random r1 = new Random(10010);
再次强调:
种子数只是随机算法的起源数字,和生成的随机数字的区间无关。
且相同的种子数生成的随机数相同。
2、Random类中的常用方法
Random类中的方法比较简单,每个方法的功能也很容易理解。需要说明的是,Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率是均等的:
public boolean nextBoolean(); 该方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是50%的几率。
public double nextDouble();该方法的作用是生成一个随机的double值,数值介于[0,1.0)之间。
public int nextInt();该方法的作用是生成一个随机的int值,该值介于int的区间,也就是-2^31到2^31-1之间。
public int nextInt(int n);该方法的作用是生成一个随机的int值,该值介于[0,n-1]的区间。