使用的区别:

random属于java.lang包下Math类的方法,属于静态方法,不需要创建对象,只用通过类名点的方式直接调用即可,返回值为float类型。例:float f=Math.random();

而Random属于java.util包,需要通过创建对象来进行接收随机数的返回值。例:Random r=new Random();   int number=r.nextInt();

从精准度分析:

Math.random()产生的随机数范围是[0,1),左闭右开区间,而我们是假设要取一个5-10范围内的随机数,当我们使用的是数学类 Math.random()×5+5;但是所需要注意到的是,设计到乘法的情况时,在随机数取不到1的前提下,0.9999999999×5无限接近于4.6,我们永远取不到4.6-5.0范围内的随机数,会丢失一部分精度。

而Random类就非常好的避免这一情况,在它的类中有nextInt(),nextFloat(),nextDouble()来进行专门的取随机数,nextInt()如果不赋值的情况下,默认随机范围是-2147483648~2147483647,而nextFloat()的随机范围则是[0-1)。如果需要取[5-10)的随机数范围,则我们可以通过小数部分和整数部分分开随机再相加的方式进行精准随机,这样的话不会丢失精度例:nextInt(5)+5+nextFloat();

从优缺点分析:

所以如果随机数涉及到小数的话,建议使用Random类,准确度高,不会丢失精度;如果随机数取整的话,则是推荐使用Math.random,不需要导包、创建对象,使用方便 。

Random和random的区别相关推荐

  1. Pytorch中rand,randn, random以及normal的区别

    Pytorch中rand,randn, random以及normal的区别 torch.rand() torch.randn() torch.normal() torch.randperm() tor ...

  2. random和urandom的区别

    /dev/random vs /dev/urandom /dev/random和/dev/urandom是unix系统提供的产生随机数的设备,很多应用都需要使用random设备提供的随机数,比如ssh ...

  3. python random 和numpy random_Python中numpy.random和random.random之间的区别

    我在Python中有一个大脚本. 我在其他人的代码中得到了启发,所以最终我在某些方面使用了numpy.random模块(例如,用于创建从二项式分布中获取的随机数数组),而在其他地方,我使用了模块ran ...

  4. 成功解决tempfile.pyquot;, from random import Random as _Random ImportError: cannot import name 'Random

    成功解决tempfile.py",  from random import Random as _Random ImportError: cannot import name 'Random ...

  5. random.next_Java Random next()方法与示例

    random.next 随机类的next()方法 (Random Class next() method) next() method is available in java.util packag ...

  6. java random.nextbytes_Java Random类

    首页 > 基础教程 > 常用类 > 常用 Random类 Java Random类 Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时,随机算法的起源数字称为种 ...

  7. python使用from Crypto.Random import random时候出现winrandom导入失败的解决方法

    问题描述:今天在使用Crypto.Random.random的时候出现错误,具体错误原因如下: >>> from Crypto.Random import random Traceb ...

  8. java random nextint_java Random.nextInt()方法的具体使用

    lic int nextInt(int n) 该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n. 直接上代码: package org. ...

  9. 装袋法(bagging)和随机森林(random forests)的区别

    bagging method 和random forests 一般都是应用在决策树中.这篇文章只讨论bagging method 和random forests 的区别. bagging method ...

最新文章

  1. python代码写龙卷风_python面试题
  2. hdu 6034 B - Balala Power! 贪心
  3. linux出站入站端口维护,linux下如何用iptables开放指定端口_网站服务器运行维护,linux,iptables,端口...
  4. 极客无极限 一行HTML5代码引发的创意大爆炸
  5. 计算机网络——物理层设备
  6. python处理一亿条数据_Python基础数据处理库
  7. 处理多维特征的输出(糖尿病数据)
  8. UVALive 5760 Alice and Bob
  9. 什么是存储过程?用什么来调用?
  10. 华为 2015 机试 输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin。...
  11. 万兆铜缆--七类双绞线--光纤等内容
  12. 凯恩斯主义税收思想概述
  13. Kotlin 学习笔记(三)—— Kotlin 的动态代理你会写吗
  14. 3D建模角色男人头雕刻 | 不要再花钱买教程啦
  15. 【f1c200s/f1c100s】使用genimage工具制作img系统镜像
  16. 3D游戏与编程——UI系统
  17. 2015美国大学计算机科学专业排名,2015年US News美国大学计算机专业排名
  18. 极兔快递单号查询API
  19. AMPL IDE语法整理
  20. 【SQL语法基础】了解SQL:一门半衰期很长的语言

热门文章

  1. Java监视和管理控制台
  2. 论文浅尝 | AI回答小学科学问题达到人类水平(OpenBookQA)
  3. 震惊!程序员一夜赚1W,没想到他就做了这个.......
  4. iOS学习笔记-108.多线程07——CGD栅栏函数、延时、一次性代码
  5. 工欲善其事,必先利其器:5大Java自动化部署工具
  6. Java源码阅读学习后的浅析和感悟(JDK篇)(持续更新)
  7. ABCDE-入栈,不可能的出栈次序
  8. python泰勒级数计算sinx_c语言 利用泰勒级数计算sinx的值
  9. Microsoft 设计原则
  10. CentOS 7 安装惠普打印机驱动