Random类和Math.random()方法生成随机数

一、Random类 Random类位于java.util包中,是一个生成随机数的工具类,里面包含很多生成随机数的方法,随机数的种类也很多,构造方法:

//创建一个新的随机数生成器 Random() //使用一个long类型的种子创建一个新的随机数生成器 Random(long seed)

下面使用简单程序比较构造方法传入种子和不传入种子的区别:
public static void main(String[] args) { for (int i = 0 ; i < 5; i++){ Random random = new Random(); System.out.print("不传入种子:"); for (int j = 0 ; j < 5; j++){ System.out.print(random.nextInt(50) + " "); } Random random1 = new Random(30); System.out.print("传入种子:"); for (int j = 0 ; j < 5; j++){ System.out.print(random1.nextInt(50) + " "); } System.out.println(); } }

【Random类和Math.random()方法生成随机数】运行结果显示,不传入种子时每次随机生成,传入种子后,无论生成多少次,随机数序列都是固定的。
运行结果: 不传入种子:33 7 0 43 40 传入种子:6 18 15 4 36 不传入种子:32 36 42 8 44 传入种子:6 18 15 4 36 不传入种子:35 10 30 41 15 传入种子:6 18 15 4 36 不传入种子:7 21 10 38 48 传入种子:6 18 15 4 36 不传入种子:10 38 8 26 20 传入种子:6 18 15 4 36

常用方法:
int nextInt()//随机生成int类型的随机数 int nextInt(int bound) //随机生成0~bound范围内int类型的随机数 long nextLong()//随机生成long类型的随机数 float nextFloat()//随机生成float类型的随机数 double nextDouble()//随机生成double类型的随机数 boolean nextBoolean()//随机生成boolean类型的随机数

常用方法示例:
public static void main(String args[]){ Random random = new Random(); System.out.println("int类型的随机数:" + random.nextInt()); System.out.println("0~100之间int类型的随机数:" + random.nextInt(100)); System.out.println("long类型的随机数:" + random.nextLong()); System.out.println("float类型的随机数:" + random.nextFloat()); System.out.println("double类型的随机数:" + random.nextDouble()); System.out.println("boolean类型的随机数:" + random.nextBoolean()); }

运行结果: int类型的随机数:-1922584787 0~100之间int类型的随机数:77 long类型的随机数:810046470795953043 float类型的随机数:0.099689186 double类型的随机数:0.22017380615351756 boolean类型的随机数:false

二、Math.random()方法 Math类位于java.lang包中,类中包含了基本数字运算的静态方法,Math.random()方法作用是生成一个0.0~1.0的double类型随机数。
下面程序随机生成10个大于等于0.0小于1.0的随机数:
public static void main(String[] args) { for (int i = 0 ; i < 10 ; i++){ System.out.println("随机生成一个大于等于0.0小于1.0的数 :" + Math.random()); } }

运行结果: 随机生成一个大于等于0.0小于1.0的数 :0.6733948523337862 随机生成一个大于等于0.0小于1.0的数 :0.437521060962653 随机生成一个大于等于0.0小于1.0的数 :0.6165672093624672 随机生成一个大于等于0.0小于1.0的数 :0.9604598185026124 随机生成一个大于等于0.0小于1.0的数 :0.4669270016086634 随机生成一个大于等于0.0小于1.0的数 :0.9466395132261689 随机生成一个大于等于0.0小于1.0的数 :0.9791012995327195 随机生成一个大于等于0.0小于1.0的数 :0.07037790797911325 随机生成一个大于等于0.0小于1.0的数 :0.23209136646463813 随机生成一个大于等于0.0小于1.0的数 :0.8948266746875501

    推荐阅读