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

Java Random随机数生成类的用法(附带实例)

Random 类是 JDK 中的随机数生成器类,程序开发人员可以通过实例化一个 Random 类对象来创建一个随机数生成器,语法如下:
Random r = new Random();
以这种方式实例化对象时,Java 编译器将以系统当前时间作为随机数生成器的种子。因为每时每刻的时间不可能相同,所以产生的随机数不同。但是,如果运行速度太快,也会产生两个运行结果相同的随机数。

用户也可以在实例化 Random 类对象时,设置随机数生成器的种子。语法如下:
Random r = new Random(seedValue);

在 Random 类中,提供了获取各种数据类型随机数的方法,下面列举几个常用的方法。

方法 功能描述
public int nextInt() 返回一个随机整数。
public int nextInt(int n) 返回大于或等于 0 且小于 n 的随机整数。
public long nextLong() 返回一个随机长整型值。
public boolean nextBoolean() 返回一个随机布尔型值。
public float nextFloat() 返回一个随机单精度浮点型值。
public double nextDouble() 返回一个随机双精度浮点型值。
public double nextGaussian() 返回一个概率密度为高斯分布的双精度浮点型值。

【实例】获取不同取值范围、不同类型的随机数。在项目中创建 RandomDemo 类,在类的主方法中创建 Random 类的对象,使用该对象生成各种类型的随机数,并输出结果。
import java.util.Random;
public class RandomDemo {
    public static void main(String[] args) {
        Random r = new Random(); // 实例化一个 Random 类对象
        // 随机产生一个整数
        System.out.println("随机产生一个整数:" + r.nextInt());
        // 随机产生一个大于或等于 0 且小于 10 的整数
        System.out.println("随机产生一个大于或等于 0 且小于 10 的整数:" + r.nextInt(10));
        // 随机产生一个布尔型的值
        System.out.println("随机产生一个布尔型的值:" + r.nextBoolean());
        // 随机产生一个双精度浮点型的值
        System.out.println("随机产生一个双精度浮点型的值:" + r.nextDouble());
        // 随机产生一个单精度浮点型的值
        System.out.println("随机产生一个单精度浮点型的值:" + r.nextFloat());
        // 随机产生一个概率密度为高斯分布的双精度浮点型的值
        System.out.println("随机产生一个概率密度为高斯分布的双精度浮点型的值:" + r.nextGaussian());
    }
}
代码每次运行得到的结果都会不同,笔者运行程序时的结果如下:

随机产生一个整数:-991995210
随机产生一个大于或等于0且小于10的整数:5
随机产生一个布尔型的值:true
随机产生一个双精度浮点型的值:0.05001508158115486
随机产生一个单精度浮点型的值:0.31018203
随机产生一个概率密度为高斯分布的双精度浮点型的值:0.6781040183219917

注意,random() 方法返回的值实际上是伪随机数,它通过复杂的运算而得到一系列的数。该方法使用当前时间作为随机数生成器的参数,因此每次执行程序时都会产生不同的随机数。

相关文章