Java怎么生成随机数?Random类有哪些用法?

2021-05-19 18:04:53 浏览数 (3)

软件中经常需要产生随机数。比如游戏中常用随机数代表投骰子或者洗牌,抽奖经常用随机数模拟抽奖概率。在 Java 中,有一个  Random 类专门用来模拟随机数。接下来,就让小编带你了解一下这个类。

生成整型的随机数

使用 Random 类的 ​nextInt() ​方法,可以生成一个范围为整个 int 取值区间的 int 类型随机数。

 ​nextInt()​ 方法可以传入一个 int 类型的参数,传参情况下生成的随机数范围是从 0 到该参数的范围。

生成浮点型的随机数

使用 Random 类的​ nextFloat()​/​nextDouble()​ 方法,可以生成一个范围为0到1.0范围内的浮点型随机数(两种方法产生的随机数精度不同)。

Random的其他方法

使用 Random 类的 ​nextGaussian()​ 方法,可以生成一个伪高斯分布的均值为0.0,标准差为1.0从此随机数生成器的序列的 double 值。

import java.util.Random;

public class RandomNumbers{
    public static void main(String[] args) {
        int num1 = new Random().nextInt();//使用Random的nextInt方法生成int类型随机数,范围为整个int的取值区间
        System.out.println(num1);
        int num2=new Random().nextInt(10);//使用Random的nextInt方法生成int类型随机数,范围为0到输入参数的取值区间
        System.out.println(num2);
        num2 = new Random().nextInt(10)+10;//通过加减法,修改最终生成随机数的生成范围
        float num3 =new Random().nextFloat();
        //使用Random的nextFloat方法生成float类型随机数,范围为0d到1.0区间的浮点随机数
        System.out.println(num3);
        double num4 =new Random().nextDouble();
        //使用Random的nextDouble方法生成double类型随机数,范围为0d到1.0区间的浮点随机数
        System.out.println(num4);
        double num5 = new Random().nextGaussian();
        //生成一个伪高斯分布的均值为0.0,标准差为1.0从此随机数生成器的序列的double值。
        System.out.println(num5);
    }
}

更多技巧

可以通过加减乘除,来扩大缩小,或者移动区间的范围。

在生成的随机数后面加10,可以让所有生成的随机数都加10,从而使随机数生成的区间范围向右移动。

在生成的随机数后面*10,可以让所有生成的随机数都扩大10倍,从而使随机数生成的区间范围扩大10倍。

小结

以上关于 Java 的 Random 的类的介绍就到这里,更多Java技术学习,请关注菜鸟自学java教程

0 人点赞