Java基础--手把手教你如何生成随机数

文章目录

  • 一、Math.random()函数
  • 二、生成整数
  • 三、进阶练习

一、Math.random()函数

Math.random()函数可以帮我们生成一个一个double类型的值。

Math是java中自带的一个类,有random这样的一个方法。这个方法可以帮我们生成一个浮点数。

public class demo1 {
    public static void main(String[] args) {
        double value=Math.random();
        System.out.println(value);
    }
}

通过运行,可以发现,每次运行结果不同。

image-20220309160238626

但是数值的范围是:

0.0000000000000000 ~ 0.9999999999999999

二、生成整数

(1)在上面的学习中,我们可以发现,Math.random()生成的是浮点数。

那如果我们想生成整数呢?

我们知道,Math.random()生成的数值范围为:

0.0000000000000000 ~ 0.9999999999999999

那么,如果乘以10,小数点之前的那个数字(整数部分)的范围就是0~9(0/1/2/3/4/5/6/7/8/9)。

package Test1;

public class demo1 {
    public static void main(String[] args) {
        //我想输出随机的一个整数
        //Math.random():0.0000000000000000~0.9999999999999999
        double value=Math.random()*10;
        System.out.println(value);
    }
}

运行结果(随机的哈,每个人生成的结果不同的):
image-20220309161057082

(2)同理,我们可以思考一下,如果乘以3的话,结果的范围是多少呢?

我们知道,Math.random()生成的数值范围为:

0.0000000000000000 ~ 0.9999999999999999

那么乘以3之后:

0.0*3 ~ 0.9*3(一个无限接近0.9的数乘3,得到一个无限接近3的数)

则:乘以3之后,它的整数部分就是0~2(0/1/2)。

package Test1;

public class demo1 {
    public static void main(String[] args) {
        //我想输出随机的一个整数
        //Math.random():0.0000000000000000~0.9999999999999999
        double value=Math.random()*3;
        System.out.println(value);
    }
}

运行结果(随机的哈,每个人生成的结果不同的):

image-20220309161708336

(3)再同理,我们可以思考一下,如果乘以5的话,结果的范围是多少呢?

经过分析,乘以5之后,它的整数部分就是0~4。(0/1/2/3/4)

(4)只保留整数

我们可以将上面生成的浮点数只保留整数,这样就会生成一个整数啦!

这就需要对生成的浮点数进行强制类型转换了,将浮点数转换为整型(相当于砍掉小数位,只保留整数位)。

假如我们要生成一个随机数,范围是0~25。

①经过上面的分析,我们可以清晰的知道,要让Math.random()乘以26。

②然后将随机生成的小数只保留整数位。

代码如下:

package Test1;

public class demo1 {
    public static void main(String[] args) {
        //我想输出0~25之间随机的一个整数
        //Math.random():0.0000000000000000~0.9999999999999999
        int value=(int)(Math.random()*26); //注意用int类型来接收生成的数
        System.out.println(value);
    }
}

运行结果(随机的哈,每个人生成的结果不同的):

image-20220309163742919

三、进阶练习

我想输出23~59之间随机的一个整数

思路:

①没有办法从23直接生成,只能从0开始生成。

②我们来数一下23~59之间有多少个数字。59-23=36,一共有37个数字。

③那我们乘以37就可以了,这样的范围就是:0~36

④最后再加上起始值23即可。这样范围就是23~59啦!

⑤注意要用Int类型变量接收哦,还需要强制类型转换别忘了。

代码如下:

package Test1;

public class demo1 {
    public static void main(String[] args) {
        //我想输出23~59之间随机的一个整数
        //Math.random():0.0000000000000000~0.9999999999999999
        //59-23=36 一共37个数字
        int value=(int)(Math.random()*37)+23;
        System.out.println(value);
    }
}

运行结果(随机的哈,每个人生成的结果不同的):

image-20220309164731817

你可能感兴趣的:(Java基础,java,开发语言,生成随机数)