当前位置:首页 > Java技术 > JAVA随机数生成 | Math.random()方法 | 随机生成int、double类型

JAVA随机数生成 | Math.random()方法 | 随机生成int、double类型

2022年11月09日 15:21:22Java技术8

Math.random()

a pseudorandom double greater than or equal to 0.0 and less than 1.0.
即返回一个[0,1)的double类型的随机数

以下情况 | y>x

double随机数

要获取一个[x,y)的double类型的随机数 | 左闭右开

double d = x + Math.random() * (y - x);

要获取一个(x,y]的double类型的随机数 | 左开右闭

double d = y - Math.random() * (y - x);

要获取一个[x,y]的double类型的随机数 | 左闭右闭

double d = x + Math.random() * y % (y - x + 1);

要获取一个(x,y)的double类型的随机数 | 左开右开

double d = (y - Math.random()) % y;

int随机数

要获取一个[x,y)的int类型的随机数 | 左闭右开

int d = x + (int)(Math.random() * (y - x));

要获取一个(x,y]的int类型的随机数 | 左开右闭

int d = y - (int)(Math.random() * (y - x));

要获取一个[x,y]的int类型的随机数 | 左闭右闭

int i = x + (int)(Math.random() * (y - x + 1));

要获取一个(x,y)的int类型的随机数 | 左开右开

int d = (int)((y - Math.random()) % y);

注意1

Random r = new Random();
double rs = r.nextDouble();
int in = r.nextInt(500);
 
   

提供另一种解决思路

注意2

Math类中有一floor(double a)方法
public static double floor(double a)
返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。

所以对于要获取一个[x,y]的double类型的随机数 | 左闭右闭时候
可以采用以下解决思路:
Double.valueOf( x + Math.floor(random.nextDouble() * y % (y - x + 1));

作者:鉴泉~Richarlie
来源链接:https://blog.csdn.net/s_156/article/details/120862430

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68883.html

分享给朋友:

“JAVA随机数生成 | Math.random()方法 | 随机生成int、double类型” 的相关文章

java基础知识讲解(一)数据类型和运算符

java基础知识讲解(一)数据类型和运算符

Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。 Java中定义了3类8种基本数据类型 数值型- b...

Java实现素数的判断

素数的定义只能被1和它本身整除,不包括1 例 2.3.5.7.11.13 实现代码 Scanner in=new Scanner(System.in); int n ; n=in.nextInt(); for(int n1=2;n1&l...

java计数循环及小技巧

要运行一个很大次数的循环应该选择一个小数,然后去判断 例如本例子是100可以选择10去判断 public static void main(String[] args) { // TODO Auto-generated metho...

java中将英尺换算为身高

java中将英尺换算为身高

直接上代码 如图所示便是身高的换算,你学到了吗?、 int foot; double inch; Scanner in=new Scanner(System.in); foot=in.nextInt(); inch=in.nextDouble...

动车上的书摘-java对象流与序列化

动车上的书摘-java对象流与序列化

动车上的书摘-java对象流与序列化摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢!钢笔不限贵便宜,书法是来自心对手的交流。-泥沙砖瓦浆木匠 一.对象序列化当需要存储相同类型的数据,选...

Java 基础:hashCode方法

Java 基础:hashCode方法

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 一、前言     泥瓦匠最近被项目搞的天昏地暗。发现有些要给自己一些目标,关于技术的目标: 专注...

深入浅出: Java回调机制(异步)

Writer      :BYSocket(泥沙砖瓦浆木匠) 什么是回调?今天傻傻地截了张图问了下,然后被陈大牛回答道“就一个回调…”。此时千万个草泥马飞奔而过(逃 哈哈,看着源码,享受着这种回调在代码上的作用,...

图解 Java IO : 二、FilenameFilter源码

图解 Java IO : 二、FilenameFilter源码

Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆  &...

java 实现图片压缩

转载https://www.cnblogs.com/strongmore/p/14158639.html 添加依赖 <dependency> <groupId>net.coobird</groupId> <artifa...

java IO流学习总结

java IO流学习总结

java IO流学习总结 近期学习了Java的IO流,尝试着总结一下。 java.io 包下的IO流很多: 其中,以Stream结尾的为字节流,以Writer或者Reader结尾的为字符流。所有的输入流都是抽象类IuputStream(字节输入流)或者抽象类R...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。