Java中随机数的产生方法
Java中产生随机数
文章目录
- Java中产生随机数
- 1.通过Math类
- 结论:
- 2.通过Random类
- 总结:
1.通过Math类
Math类是java.lang包中的一个类,包含了许许多多的数学方法,进入Math类,可看到如下源码:
public final class Math {/*** Don't let anyone instantiate this class.*/private Math() {}
- 可见Math类是一个由final修饰的类,不能够拥有子类,体现了它的封装性;
- 再看它的构造方法,是由private修饰的,可以看出Math类不能够产生对象;
- 在后面的定义中,Math类中的方法都是静态方法,可直接由类名.方法名直接调用;
产生随机数的就是Math类中的random()方法,看下面这段代码:
public class Rand {public static void main(String[] args) {int[] arr = new int[30];for(int i=0; i<30; i++) {arr[i] = (int)(Math.random()*10);}for(int i:arr) {System.out.print(i+"、");}}
}
结果:
9、1、5、5、8、5、3、4、5、6、9、2、8、3、8、0、1、8、8、4、9、6、3、0、4、6、3、5、7、4、
结论:
- random()方法能产生0~1之间的double型小数,包含0不包含1 ;
- 可通过对random()的返回值进行处理得到我们想要的随机数;
- random的返回值为double类型,注意进行强转;
- 得到[m,n]闭区间范围得表达式为:
int res = ( int ) (Math.random( ) * (n-m+1) + m );
2.通过Random类
Random类是java.util包中得一个类,专门用来产生各种类型得随机数;
使用该类必须先生成对象,再调用它的方法,Random类中所含方法大致如下:
方法 | 说明 |
---|---|
boolean nextBoolean() | 生成一个随机的 boolean 值,生成 true 和 false 的值概率相等 |
double nextDouble() | 生成一个随机的 double 值,数值介于[0,1.0),含 0 而不包含 1.0 |
int nextlnt() | 生成一个随机的 int 值,该值介于 int 的区间,也就是 -231~231-1。如果 需要生成指定区间的 int 值,则需要进行一定的数学变换 |
int nextlnt(int n) | 生成一个随机的 int 值,该值介于 [0,n),包含 0 而不包含 n。如果想生成 指定区间的 int 值,也需要进行一定的数学变换 |
void setSeed(long seed) | 重新设置 Random 对象中的种子数。设置完种子数以后的 Random 对象 和相同种子数使用 new 关键字创建出的 Random 对象相同 |
long nextLong() | 返回一个随机长整型数字 |
boolean nextBoolean() | 返回一个随机布尔型值 |
float nextFloat() | 返回一个随机浮点型数字 |
double nextDouble() | 返回一个随机双精度值 |
看示例代码:
public class Rand {public static void main(String[] args) {int[] arr = new int[30];Random random = new Random();for(int i=0; i<30; i++) {arr[i] = random.nextInt(5+1)+10-5; //产生5~10之间的数}for(int i:arr) {System.out.print(i+"、");}}
}
输出:
7、10、5、10、6、7、8、9、6、9、8、6、10、5、6、10、9、7、5、10、9、8、10、9、5、7、8、9、9、7、
总结:
- 产生[m,n]闭区间的表达式为:
res = random().nextInt(n-m+1) + m
; - 使用前得先产生Random的对象;
Java中随机数的产生方法相关推荐
- JAVA中随机数的选取方法
在Java中,可有三种选取随机数的方法,分别是:new Random() .Math.random() .currentTimeMillis(). 1.new Random(): 这个需要在程序的开 ...
- JAVA中随机数的生成方法
一.第一种:使用Math类中的random方法 该方法的返回数值为[0.0,1.0)的double类型数,由于double类数的精度很高,可以在一定程度下看做随机数,借助(int)来进行类型转换就可以 ...
- Java中随机数的原理,以及使用时的注意点
转载自 Java中随机数的原理,以及使用时的注意点 1 前言 一提到 Java 中的随机数,很多人就会想到 Random,当出现生成随机数这样需求时,大多数人都会选择使用 Random 来生成随机 ...
- Java中随机数的产生
Java中随机数的产生有两种方法: 一.利用Random类的实例对象产生: Random r = new Random(); int i =r.nextInt(99)+1; //产生1-100之间 ...
- 在java中下列描述错误的是_在 JAVA 中 , 关于类的方法 , 下列描述错误的是 ()._学小易找答案...
[多选题]价值的特性是 [简答题]输入任一字符串,统计其中数字,字母及其它字符个数 .(25分) [填空题]1.产品整体包括哪五个基本层次 2核心层次产品最基本的层次,是产品的_____ [单选题]纸 ...
- java中读取文件的方法
总结一下java中读取文件的方法: 方法一(逐行的读取文件内容): private FileReader fileReader; private BufferedReader bufferedRead ...
- JAVA中线程同步的方法(7种)汇总
JAVA中线程同步的方法(7种)汇总 同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法. ...
- Java中wait和sleep方法的区别
1.两者的区别 这两个方法来自不同的类分别是Thread和Object 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁). wait ...
- 详细讲解Java中log4j的使用方法
详细讲解Java中log4j的使用方法 作者: 网络 来源: 日期: 2008-1-3 23:40:24 1.Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 用的)和分析,要 ...
最新文章
- 时序预测竞赛之异常检测算法综述
- Lightoj 1123 - Trail Maintenance(最小增量生成树)
- 软件使用 excel
- java 输入输出头文件_引入的标准头文件与标准输出以及FOR循环
- ESD二极管,替代国际品牌型号汇总
- linux查询所有目录的txt文件,Linux 在指定目录下的所有文件中查找text文本的方法...
- 单页面二改套后台,后台采用的是迅睿CMS框架
- Linux工作笔记039---CentOS8.2卸载mysql
- vue二级路由跳转后外部引入js失效问题解决方案
- ThinkpadT470接通电源开机显示电量0%充不进电且电源指示灯不亮的解决办法
- 2019 第四季度计划
- 各GIS软件添加天地图方式
- 关于JeeSite框架Shiro序列化漏洞修复解决方法
- HSV颜色空间中颜色(红、黄、绿、 青、蓝、紫、 粉红、 砖红、 品红)对应的灰度范围
- c语言课程终结考试,C语言课程考核方案.doc
- Cross Domain Person Re-Identification With Large Scale Attribute Annotated Datasets参考文献解读
- 计算机管理进不去的原因,电脑进不了系统Windows怎么解决?电脑进不了系统的原因和解决方法...
- 《达利之梦》推出APP,带你走进VR超现实画作
- C/C++开发人员要了解的几大著名C/C++开源库
- 电脑开机各种蓝屏错误代码,U盘重装系统彻底解决
热门文章
- 计算机word教案设计,Word文档教学设计
- 51单片机学习笔记-1简介及点灯
- H(单应矩阵homography),本质矩阵(Essential Matrix)和F(基础矩阵fundamental)
- SpringBoot 实现统一参数校验
- Tesseract-OCR安装与使用
- 在JavaScript中实现商品图片的局部放大(放大镜)
- 默默学计算机专转本,专转本计算机默默学
- JPA(Java Persistence API,Java持久化API)
- 我的读书笔记 -《厚黑学》
- CGTrader新赛CG Wildlife Challenge(CG野生生物竞赛)重磅推出