前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 中产生随机数的方法小结

Java 中产生随机数的方法小结

作者头像
白鹿第一帅
修改2021-03-03 15:36:07
5570
修改2021-03-03 15:36:07
举报
文章被收录于专栏:Java EE 企业级开发工作日志

文章目录

  • 前言
  • 一、调用 System.currentTimeMillis() 方法
    • 1.1、原理剖析
    • 1.2、随机数加法程序
  • 二、使用 Math.random() 方法
    • 2.1、原理剖析
    • 2.2、随机数减法程序
  • 总结

前言

在 Java 中提供了很多的方法能够产生随机数。我们今天介绍其中最为简单的两种,对于初学者来说较为友好,同时附了两个简单的案例供大家参考。

在这里插入图片描述
在这里插入图片描述

一、调用 System.currentTimeMillis() 方法

1.1、原理剖析

根据 API 的介绍,调用 System.currentTimeMillis() 方法我们可以获取 1970 年 1 月 1 日午夜到现在的毫秒数(例如:1203183086328 毫秒),我们可以通过取余的方式得到其最后一位的整数:

代码语言:javascript
复制
int number1 = (int)(System.currentTimeMillis() % 10);

1.2、随机数加法程序

通过程序产生随机数让一年级学生练习加法。程序随机产生两个一位整数,number1 和 number2,然后显示“What is 1 + 7?”

代码语言:javascript
复制
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));
	}
}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、使用 Math.random() 方法

2.1、原理剖析

使用 Math.random() 来获得一个 0.0 到 1.0 之间的随机 double 值,不包括 1.0。通过(int)(Math.random() * 10)会返回一个随机的一位整数(即 0 到 9 之间的数)。

代码语言:javascript
复制
int number1 = (int)(Math.random() * 10);

2.2、随机数减法程序

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

代码语言:javascript
复制
package program3_3;

import java.util.Scanner;

public class SubtractionQuiz {
	public static void main(String[] args) {
		int number1 = (int)(Math.random() * 10);
		int number2 = (int)(Math.random() * 10);
		if(number1 < number2) {
			int temp = number1;
			number1 = number2;
			number2 = temp;
		}
		System.out.println("What is " + number1 + " - " + number2 + " ?");
		Scanner input = new Scanner(System.in);
		int answer = input.nextInt();
		if(number1 - number2 == answer) {
			System.out.println("You are correct!");
		}
		else {
			System.out.println("You are wrong!");
			System.out.println(number1 + " - " + number2 + " should be " + (number1 - number2) + "!");
		}
 	}
}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

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

在这里插入图片描述
在这里插入图片描述

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、调用 System.currentTimeMillis() 方法
    • 1.1、原理剖析
      • 1.2、随机数加法程序
      • 二、使用 Math.random() 方法
        • 2.1、原理剖析
          • 2.2、随机数减法程序
          • 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档