Java 产生随机数:Java 中产生随机数的方法及应用汇总

简介: Java 产生随机数:Java 中产生随机数的方法及应用汇总

文章目录


前言

在 Java 中提供了很多的方法能够产生随机数,在本文中将持续进行总结相应的方法和应用,对于初学者来说较为友好,同时附了简单的案例供大家参考。

image.png


一、System.currentTimeMillis() 方法

1.1、System.currentTimeMillis() 方法原理剖析

根据 API 的介绍,调用 System.currentTimeMillis() 方法我们可以获取 1970 年 1 月 1 日午夜到现在的毫秒数(例如:1203183086328 毫秒)。

我们可以通过取余的方式得到其最后一位的整数,代码如下:

int number1 = (int)(System.currentTimeMillis() % 10);

1.2、实现随机数加法程序

利用 System.currentTimeMillis() 方法实现通过程序产生随机数让一年级学生练习加法,例题如下。

程序随机产生两个一位整数,number1 和 number2,然后显示“What is 1 + 7?”

实现代码如下:

package program3_1;
import java.util.Scanner;
public class AdditionQuiz {
  public static void main(String[] args) {
    int number1 = (int)(System.currentTimeMillis() % 10);
    int number2 = (int)(System.currentTimeMillis() / 7 % 10);
    Scanner input = new Scanner(System.in);
    System.out.print("What is " + number1 + " + " + number2 + " ?");
    int answer = input.nextInt();
    System.out.println(number1 + " + " + number2 + " = " + answer + " is " + (number1 + number2 == answer));
  }
} 

实现具体如下图所示:

image.png

image.png

二、Math.random() 方法

2.1、Math.random() 方法原理剖析

使用 Math.random() 来获得一个 0.0 到 1.0 之间的随机 double 值,不包括 1.0

通过 (int)(Math.random() * 10) 会返回一个随机的一位整数(即 0 到 9 之间的数),代码如下:

int number1 = (int)(Math.random() * 10);

2.2、实现随机数减法程序

利用 Math.random() 方法实现一个让一年级学生练习减法的程序,例题如下。

程序随机产生两个一位整数 number1 和 number2,且满足 number >= number2。显示问题:“What is 9 - 2 ?”学生输入答案后,显示消息判断是否正确。

实现代码如下:

package com.bailu.test;
import java.util.Scanner;
public class AdditionQuiz {
  public static void main(String[] args) {
    int number1 = (int) (Math.random() * 10);
    int number2 = (int) (Math.random() * 10);
    if (number2 > number1) {
      int temp = number1;
      number1 = number2;
      number2 = temp;
    }
    System.out.print("What is " + number1 + " - " + number2 + " ? ");
    Scanner input = new Scanner(System.in);
    int answer = input.nextInt();
    input.close();
    if (number1 - number2 == answer) {
      System.out.println("You are right!");
    } else {
      System.out.println("You are wrong!");
      System.out.println(number1 + " - " + number2 + " = " + (number1 - number2));
    }
  }
}

实现具体如下图所示:

image.png

image.png


总结

本文给大家介绍了两种产生随机数的方法,这是最简单的两种。日后有机会我还会继续补充更多的方法,另外大家还有什么方法呢?补充到下面吧!

image.png


我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!


相关文章
|
14天前
|
存储 安全 算法
Java容器及其常用方法汇总
Java Collections框架提供了丰富的接口和实现类,用于管理和操作集合数据。
Java容器及其常用方法汇总
|
16天前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
59 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
2天前
|
人工智能 Java API
Java也能快速搭建AI应用?一文带你玩转Spring AI可落地性
Java语言凭借其成熟的生态与解决方案,特别是通过 Spring AI 框架,正迅速成为 AI 应用开发的新选择。本文将探讨如何利用 Spring AI Alibaba 构建在线聊天 AI 应用,并实现对其性能的全面可观测性。
|
14天前
|
Java API
java.time常用方法汇总
`java.time` API 是从 Java 8 开始引入的时间日期处理库,旨在替代老旧的 `java.util.Date` 和 `Calendar`。它提供了更简洁、强大和灵活的方式处理日期、时间、时区及时间间隔,支持全球化和时间计算需求。API 包含获取当前时间、创建指定时间、解析和格式化字符串、进行加减运算、比较时间、获取年月日时分秒、计算时间间隔、时区转换以及判断闰年等功能。示例代码展示了如何使用这些功能,极大简化了开发中的时间处理任务。
|
1月前
|
Java
Java快速入门之类、对象、方法
本文简要介绍了Java快速入门中的类、对象和方法。首先,解释了类和对象的概念,类是对象的抽象,对象是类的具体实例。接着,阐述了类的定义和组成,包括属性和行为,并展示了如何创建和使用对象。然后,讨论了成员变量与局部变量的区别,强调了封装的重要性,通过`private`关键字隐藏数据并提供`get/set`方法访问。最后,介绍了构造方法的定义和重载,以及标准类的制作规范,帮助初学者理解如何构建完整的Java类。
|
1月前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
66 9
|
1月前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
71 12
|
1月前
|
算法 Java API
Java 方法注释:规范、实用和高质量的写法
本文深入探讨了如何编写高质量的 Java 方法注释
72 11
|
1月前
|
Java 编译器 开发者
Java中的this关键字详解:深入理解与应用
本文深入解析了Java中`this`关键字的多种用法
158 9
|
1月前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
47 5

热门文章

最新文章