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();
        }
    }

运行结果显示,不传入种子时每次随机生成,传入种子后,无论生成多少次,随机数序列都是固定的。

运行结果:
不传入种子: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

你可能感兴趣的:(Random类和Math.random()方法生成随机数)