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中随机数的产生方法相关推荐

  1. JAVA中随机数的选取方法

    在Java中,可有三种选取随机数的方法,分别是:new Random()  .Math.random() .currentTimeMillis(). 1.new Random(): 这个需要在程序的开 ...

  2. JAVA中随机数的生成方法

    一.第一种:使用Math类中的random方法 该方法的返回数值为[0.0,1.0)的double类型数,由于double类数的精度很高,可以在一定程度下看做随机数,借助(int)来进行类型转换就可以 ...

  3. Java中随机数的原理,以及使用时的注意点

    转载自   Java中随机数的原理,以及使用时的注意点 1 前言 一提到 Java 中的随机数,很多人就会想到 Random,当出现生成随机数这样需求时,大多数人都会选择使用 Random 来生成随机 ...

  4. Java中随机数的产生

    Java中随机数的产生有两种方法: 一.利用Random类的实例对象产生: Random r = new Random(); int i =r.nextInt(99)+1;   //产生1-100之间 ...

  5. 在java中下列描述错误的是_在 JAVA 中 , 关于类的方法 , 下列描述错误的是 ()._学小易找答案...

    [多选题]价值的特性是 [简答题]输入任一字符串,统计其中数字,字母及其它字符个数 .(25分) [填空题]1.产品整体包括哪五个基本层次 2核心层次产品最基本的层次,是产品的_____ [单选题]纸 ...

  6. java中读取文件的方法

    总结一下java中读取文件的方法: 方法一(逐行的读取文件内容): private FileReader fileReader; private BufferedReader bufferedRead ...

  7. JAVA中线程同步的方法(7种)汇总

    JAVA中线程同步的方法(7种)汇总 同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法. ...

  8. Java中wait和sleep方法的区别

    1.两者的区别 这两个方法来自不同的类分别是Thread和Object 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁). wait ...

  9. 详细讲解Java中log4j的使用方法

    详细讲解Java中log4j的使用方法 作者: 网络 来源: 日期: 2008-1-3 23:40:24 1.Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 用的)和分析,要 ...

最新文章

  1. 时序预测竞赛之异常检测算法综述
  2. Lightoj 1123 - Trail Maintenance(最小增量生成树)
  3. 软件使用 excel
  4. java 输入输出头文件_引入的标准头文件与标准输出以及FOR循环
  5. ESD二极管,替代国际品牌型号汇总
  6. linux查询所有目录的txt文件,Linux 在指定目录下的所有文件中查找text文本的方法...
  7. 单页面二改套后台,后台采用的是迅睿CMS框架
  8. Linux工作笔记039---CentOS8.2卸载mysql
  9. vue二级路由跳转后外部引入js失效问题解决方案
  10. ThinkpadT470接通电源开机显示电量0%充不进电且电源指示灯不亮的解决办法
  11. 2019 第四季度计划
  12. 各GIS软件添加天地图方式
  13. 关于JeeSite框架Shiro序列化漏洞修复解决方法
  14. HSV颜色空间中颜色(红、黄、绿、 青、蓝、紫、 粉红、 砖红、 品红)对应的灰度范围
  15. c语言课程终结考试,C语言课程考核方案.doc
  16. Cross Domain Person Re-Identification With Large Scale Attribute Annotated Datasets参考文献解读
  17. 计算机管理进不去的原因,电脑进不了系统Windows怎么解决?电脑进不了系统的原因和解决方法...
  18. 《达利之梦》推出APP,带你走进VR超现实画作
  19. C/C++开发人员要了解的几大著名C/C++开源库
  20. 电脑开机各种蓝屏错误代码,U盘重装系统彻底解决

热门文章

  1. 计算机word教案设计,Word文档教学设计
  2. 51单片机学习笔记-1简介及点灯
  3. H(单应矩阵homography),本质矩阵(Essential Matrix)和F(基础矩阵fundamental)
  4. SpringBoot 实现统一参数校验
  5. Tesseract-OCR安装与使用
  6. 在JavaScript中实现商品图片的局部放大(放大镜)
  7. 默默学计算机专转本,专转本计算机默默学
  8. JPA(Java Persistence API,Java持久化API)
  9. 我的读书笔记 -《厚黑学》
  10. CGTrader新赛CG Wildlife Challenge(CG野生生物竞赛)重磅推出