首页 > 编程笔记 > Java笔记 阅读:47

Java Random类:生成随机数(附带实例)

java.util.Random 类用于生成随机数,由随机算法通过一个种子(seed)产生伪随机数。由于 f(x)→y,这意味着如果知道了种子,就可能获得接下来的随机数序列的信息,即存在可预测性,所以也称 Random 产生的结果为伪随机数。

任何通过算法获得的随机数都称为伪随机数,只有通过真实随机事件产生的数才叫随机数,如放射性衰变、大气噪声等。

Random 类提供两个构造方法,用于创建 Random 对象,如下表所示:

表:Random 构造方法
构造方法 作用
Random() 以当前时间毫秒值为种子,创建 Random 对象
Random(long seed) 以指定种子创建 Random 对象

【实例】使用 Random 类生成随机数,代码如下:
import java.util.Random;

public class RandomDemo {
    public static void main(String[] args) {
        Random r1 = new Random();          // 以系统自身时间为种子数
        int randomInt1 = r1.nextInt();      // 生成随机整数
        System.out.println("randomInt1 = " + randomInt1); // 923206161
        Random r2 = new Random(3);         // 自定义种子数
        Random r3 = new Random(3);
        int randomInt2 = r2.nextInt();
        int randomInt3 = r3.nextInt();
        System.out.println("randomInt2 = " + randomInt2); // -1155099828
        System.out.println("randomInt3 = " + randomInt3); // -1155099828
    }
}
在上述代码中,我们可以看出随机类调用 nextInt() 方法,直接产生随机整数。

由此可见,相同种子数产生的随机数相同。Random 类常用方法,如下表所示。

表:Random 类常用方法
方法 释义
nextInt() 产生随机整数
nextLong() 产生随机长整数
nextFloat() 产生随机 float 小数,范围是[0,1]
nextDouble() 产生随机 double 小数,范围是[0,1]
nextBoolean() 产生随机布尔值,true 或 false

相关文章