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

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

一、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之间随机的一个整数

:cloud_with_lightning: 思路:

①没有办法从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

相关文章
|
7月前
|
Java
Java产生随机数
Java产生随机数
77 0
|
Java 数据安全/隐私保护 索引
使用Java中的随机函数生成随机数
在Java编程中,我们经常需要生成随机数来模拟各种情况或者作为密码等敏感信息的一部分。Java提供了一个内置的随机函数库,可以轻松地生成各种类型的随机数。本篇博客将介绍如何使用Java中的随机函数来生成随机数。
296 1
|
4月前
|
Java
Java系类 之 生成随机数(random()和Random类)
这篇文章介绍了Java中生成随机数的两种方法:使用`Math.random()`方法和`Random`类的实例方法,并提供了示例代码展示如何使用这些方法生成特定范围或特定条件下的随机数。
|
7月前
|
Java
java_键盘录入、随机数
本文介绍了Java中键盘录入和Random类的使用。键盘录入用于从用户那里获取数据,通过导入`java.util.Scanner`,创建`Scanner`对象,调用`nextInt()`或`nextDouble()`读取整数和小数,`next()`读取字符串。Random类用于生成随机整数,导入该类后创建对象,调用`nextInt(int bound)`生成[0, bound-1]范围内的随机数。在JDK17及以上版本,可以使用`nextInt(int start, int end)`生成[start, end)范围的随机数。常见应用包括猜数字游戏和随机点名。
68 0
|
6月前
|
存储 安全 Java
Java生成随机数的代码和方法
Java生成随机数的代码和方法
172 6
|
6月前
|
算法 安全 Java
什么是Java伪随机数,基础打牢。 #程序员 #Java #编程
什么是Java伪随机数,基础打牢。 #程序员 #Java #编程
37 0
|
7月前
|
存储 Java
35、Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值
35、Java 中的 Math 类、Random 随机数、UUID、格式化字符串或数字、字符串和数字的相互转换、高精度计算、BigDecimal、计算机中的浮点数都是近似值
103 0
|
安全 Java 数据安全/隐私保护
java random随机数的用法
java random随机数的用法
|
7月前
|
Java API
Java的Math.random获取区间随机数
Java的Math.random获取区间随机数