[Java · 铢积寸累] 基础函数 — 生成随机数 - Math.random() 详解

🌟 想系统化学习 Java 编程?看看这个:编程基础 Java · 学习手册

0x01:Math.random() --- 导入

在写程序时,我们经常会有生成随机数的需求,Java 中的 Math 类就提供了生成随机数的这么一个方法:

如上,从 Java API 文档可知,random() 方法将会返回一个 [0.0, 1.0) 之间的浮点数(注意 1.0 是取不到的)。

0x02:Math.random() --- 的使用

0x0201:random() 生成 [0, 1) 之间的小数

先来一个简单的使用 random() 方法生成 [0, 1) 之间的整数:

java 复制代码
import java.lang.Math;
​
public class TestVar {
    public static void main(String[] args) {
        System.out.println(Math.random());
    }
}

0x0202:random() 生成 [0, 100) 之间的小数

继续,提升一点难度,使用 random() 生成 [0, 100) 之间的小数,是不是就是在 random() 原本的基础上乘以 100 就可以啦:

java 复制代码
import java.lang.Math;
​
public class TestVar {
    public static void main(String[] args) {
        System.out.println(Math.random() * 100);
    }
}

0x0203:random() 生成 0, 100 之间的整数

继续提高难度,我们要生成 [0, 100] 之间的整数,整数我们知道,只要使用 (int) 强制转换就行了,可是如何包含 100 呢?推导一下:

  • random() 默认范围:[0.0, 1.0)

  • 乘以 101 后的默认范围:[0.0, 101.0)

  • 我再取一个整数 [0, 100]

来看看试验结果(笔者写了个死循环,让它不随到 100 就不许停):

java 复制代码
import java.lang.Math;
​
public class TestVar {
    public static void main(String[] args) {
        int num;
        while (true) {
            num = (int) (Math.random() * 101);
            if (num == 100) { // 咱就是验证一下能不能取到 100
                break;
            }
        }
        System.out.println(num);
    }
}
相关推荐
2301_780789668 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
第九序言T8 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
Java后端的Ai之路9 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
qq_426003969 小时前
UI自动化高频次登录login限流解决方案
python·ui·自动化
Sakura_j_h_9 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
学长毕设9 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
步行cgn10 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川10 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵10 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
程序喵大人10 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型