Java随机数

一.在Java里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机。

  二.在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个是我们在java程序里经常用的一个取随机数的方法。

三.在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内。

各个详解:

java.lang.Math.Random;

调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

int num = (int)(Math.random()*3)

上面代码中num的值会均匀的随机分布在[0,3)之间!在使用Math.Random()的时候需要注意的地方时该函数是返回double类型的值,所以在要赋值给其他类型的变量的时候注意需要进行类型转换。

java.util.Random;

在Java的API帮助文档中,总结了一下对这个Random()函数功能的描述:

1、java.util.Random类中实现的随机算法是伪随机,也就是有规则的随机,所谓有规则的就是在给定种(seed)的区间内随机生成数字;

2、相同种子数的Random对象,相同次数生成的随机数字是完全相同的;

3、Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率均等;

下面是Java.util.Random()方法摘要

1.protected int next(int bits):生成下一个伪随机数。

2.boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。

3.void nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的 byte 数组中。

4.double nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的 double值。

5.float nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布float值。

6.double nextGaussian():返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的double值,其平均值是0.0标准差是1.0。

7.int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。

8.int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的int值。

9.long nextLong():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。

10.void setSeed(long seed):使用单个 long 种子设置此随机数生成器的种子。

总结:

最后再来简单对比一下这两个随机函数到底的特点:

1.java.Math.Random()实际是在内部调用java.util.Random()的,它有一个致命的弱点,它和系统时间有关,也就是说相隔时间很短的两个random比如:

double a = Math.random();

double b = Math.random();

即有可能会得到两个一模一样的double。

2.java.util.Random()在调用的时候可以实现和java.Math.Random()一样的功能,而且他具有很多的调用方法,相对来说比较灵活。所以从总体来看,使用java.util.Random()会相对来说比较灵活一些。

转载于:https://blog.51cto.com/zlfwmm/1696252

Java记录 -38- 随机数相关推荐

  1. java 获取区间随机数_Java获取随机数的3种方法

    主要介绍了Java获取随机数的3种方法,主要利用random()函数来实现 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例: (int)(1+Math.rando ...

  2. java中的随机数_Java获取随机数

    随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个不定长度的数字.或者进行一个模拟的随机选择等等.Java提供了最基本的工具,可以帮助开发者来实现这一切. 一.Jav ...

  3. java 获取区间随机数_Java获取随机数的几种方法

    随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个不定长度的数字.或者进行一个模拟的随机选择等等.Java提供了最基本的工具,可以帮助开发者来实现这一切. 一.Jav ...

  4. Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

    Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random, ThreadLocalRandom 即 ...

  5. java中随机数怎么定义类_浅析Java中的随机数类

    Java中的随机数是否可以重复?Java中产生的随机数能否可以用来产生数据库主键?带着这个问题,我们做了一系列测试. 1.测试一: 使用不带参数的Random()构造函数 * @author Carl ...

  6. java的时间变化_通过java记录数据持续变化时间代码解析

    这篇文章主要介绍了通过java记录数据持续变化时间代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.需求:获取count为null和不为n ...

  7. java random产生随机数_java的三种随机数生成方式,必掌握

    随机数的产生在一些代码中很常用,也是我们必须要掌握的.而java中产生随机数的方法主要有三种: 第一种:new Random() 第二种:Math.random() 第三种:currentTimeMi ...

  8. java记录类型_Java中的记录类型

    java记录类型 于2020年3月发布的JDK 14引入了记录 (预览语言功能),该记录提供了一种紧凑的语法来声明主要用于保存数据的类. 在记录中 ,所有低级,重复且容易出错的代码都类似于构造函数,访 ...

  9. java记录目录树_Java记录

    java记录目录树 https://openjdk.java.net/jeps/359概述了Java的新功能,该功能可能会/将在某些将来的Java版本中实现. JEP建议使用一种新的"类别& ...

  10. java10个基础错误_我们处理了10亿个Java记录的错误-这是导致97%的错误的原因

    java10个基础错误 97%的记录错误是由10个唯一错误引起的 在2016年,一件事在30年内没有改变. 开发和运营团队仍依靠日志文件对应用程序问题进行故障排除. 由于某些未知原因,我们隐式信任日志 ...

最新文章

  1. python定义全局变量
  2. 办公用笔记本电脑哪个好_北京中仓红色办公沙发哪个品牌好
  3. 设计模式-Adapter模式
  4. go语言代码连接mysql_【mysql】golang连接mysql操作示例增删改查
  5. 计算机绘图实训任务书,2012-2cad实训任务书与指导书.pdf
  6. 《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...
  7. gitlab 删除分支_idea gitlab 分支 pull、push 实践笔记
  8. 网页制作初期,必须的东西
  9. SCVMM2008测试手册
  10. 英文java简历模板下载_java软件工程师英文简历模板下载
  11. 美团综合业务推荐系统的质量模型及实践
  12. 国产最低功耗MCU使用分析
  13. 动量梯度下降法 Momentum
  14. 前端sku-spu详解
  15. 数控编程软件可模拟刀具在三维曲面上的实时加工过程
  16. 时间-1计算机世界中的时间概念
  17. 小程序实现左右菜单联动(-)
  18. 3种查看网站流量的方式
  19. 用计算机名添加网络打印机,当IP地址经常变动时,使用计算机名连接共享打印机-自动交易...
  20. Unity -- 预制体与变体

热门文章

  1. 便携式不锈钢管道焊接机器人_为什么越来越多的不锈钢管件用不锈钢焊管制作...
  2. 详细讲解在Spring中进行集成测试AbstractDependencyInjectionSpringContextTests
  3. 使用 Drools 规则引擎实现业务逻辑,可调试drl文件
  4. 科目移动类型替代规则总结
  5. 412. Fizz Buzz
  6. MongoDB安装步骤
  7. php页面get方法实现ajax,入门实例教程
  8. linux 硬软链接区别
  9. step3 . day8数据结构之算法
  10. 深入V8引擎-AST(2)