JAVA 随机数生成方式
JAVA中生成随机数方法
(1)使用Math.random()。Math.random()随机地选取一个0~1之间的double类型小数,如果将其乘以一个数,比如100,就得到0~100之间的随机数值:
int randomNumber = (int) Math.round(Math.random()*(max-min)+min);
(2)利用System类的currentTimeMillis()方法,这个方法返回从1970年1月1号0点0分0秒到当前的一个long型的毫秒 数,可作为一个随机数,还可以将其对某些数取模,就能限制随机数的范围;此方式在循环中同时产生多个随机数时,会是相同的值,有一定的局限性!
long randomNum = System.currentTimeMillis(); int randomNumber = (int) randomNum%(max-min)+min;
(3)Random类
Random类中实现的随机算法时伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。(种子数只是随机算法的起源数字,和生成的随机数字的区间无关)。
Random类包含两个构造方法:
1) public Random()
该构造方法使用和当前系统时间有关的数字作为种子数,然后使用这个种子数构造Random对象。实际上Math.Random()内部也是利用这个构造方法来创建随机数(细节可查看源码)。
Random r=new Random()
2)public Random(long seed)
使用指定的种子数seed创建Random对象,如果种子数相同,生成的随机数也会相同。
Random r=new Random(1000)
主要方法:
public boolean nextBoolean()
生成一个随机的boolean值,生成true和false的几率相等。
public double nextDouble()
生成一个随机的double值,数值介于[0,1]之间。
public int nextInt()
生成一个随机的int值,该值介于int类型整数范围之内。
public int nextInt(int n)
生成一个随机的int值,该值介于[0,n)之间。
public void setSeed(long seed)
重新设置Random对象中的种子数。设置完种子数以后的random对象和相同种子数的使用new关键字创建出的Random对象相同。
生成指定范围内的随机数方法:
//1.直接两重循环去重public static int [] randomCommon(int min,int max,int n){if(n>(max-min+1)||max<min){return null;}int [] result=new int[n];int count=0;while(count<n){int num= (int) (Math.random()*(max-min) +min);boolean flag=true;for(int j=0;j<n;j++){if(num==result[j]){flag=false;break;}}if(flag){result[count]=num;count++;} }return result;} //2.排除已经随机的数public static int [] randomArray(int min,int max,int n){int len=max-min+1;if(max<min || n>len){return null;}//初始化给定范围的待选数组int [] seq=new int[len];for(int i=min;i<min+len;i++){//初始时seq数组存储 min~max的所有数seq[i-min]=i; //i: len-1}int [] result=new int[n];Random rand=new Random();for(int i=0;i<result.length;i++){int index=rand.nextInt(len); //生成随机下标,范围是0~lenresult[i]=seq[index]; seq[index]=seq[len-1]; len--;}return result;}
JAVA 随机数生成方式相关推荐
- java随机数转换_Java获取随机数的3种方法(转)
随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个不定长度的数字.或者进行一个模拟的随机选择等等.Java提供了最基本的工具,可以帮助开发者来实现这一切. 一.Jav ...
- java 随机数 【指定范围】
在Java中我们可以使用java.util.Random类来产生一个随机数发生器.它有两种形式的构造函数,分别是Random()和Random(long seed).Random()使用当前时间即Sy ...
- (转)Java随机数
1 随机数的三种产生方式 本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示. 广义上讲,Java中的随机数的有三种产生方式: (01). 通过System.currentTimeMil ...
- java随机数_Java随机
java随机数 Java Random class is used to generate a series of random numbers. Java Random类用于生成一系列随机数. Ja ...
- 硬核 - Java 随机数相关 API 的演进与思考(上)
本系列将 Java 17 之前的随机数 API 以及 Java 17 之后的统一 API 都做了比较详细的说明,并且将随机数的特性以及实现思路也做了一些简单的分析,帮助大家明白为何会有这么多的随机数算 ...
- java随机数代码解析,实例解析常用的java随机数生成办法
随机数是任何一种编程语言最基本的特征之一,在技术开发中应用很广泛,因为有时我们需要随机生成一个固定长度的数字.字符串亦或者是需要随机生成一个不定长度的数字.或者进行一个模拟的随机选择等.Java就为我 ...
- java random产生随机数_java的三种随机数生成方式,必掌握
随机数的产生在一些代码中很常用,也是我们必须要掌握的.而java中产生随机数的方法主要有三种: 第一种:new Random() 第二种:Math.random() 第三种:currentTimeMi ...
- java int随机数_java的三种随机数生成方式
随机数的产生在一些代码中很常用,也是我们必须要掌握的.而java中产生随机数的方法主要有三种: 第一种:new Random() 第二种:Math.random() 第三种:currentTimeMi ...
- java随机数 时间_Java 随机数
在 Java 编程时,经常需要用到随机数,如生成验证码.密码加密.游戏道具随机掉落等,那么在 Java 语言中如何生成随机数? Java 语言中有两种方法可能生成随机数 方法一:Math.random ...
最新文章
- java常见的异常类型_Java几种常见的异常类型
- java基础系列:集合基础(1)
- ITK:在图像中找到最大和最小
- 【离散数学】含有两个量词的谓词逻辑公式
- react跳转到网络异常页面_React错误边界处理
- physx选择显卡还是cpu_99块钱买啥显卡?PUBG吃鸡60fps+的缩水版“GTX1050”3GB游戏实测...
- logging 模块 与 logging 固定模块
- MikroTik RouterOS 6.x版本开始支持使用img镜像安装(U盘安装的终极解决方法)
- Prescan(七):prescan中air传感器的配置
- 使用GridView的auto_fit遇到的坑
- [渝粤教育] 新乡医学院 医学微生物学 参考 资料
- C语言关系运算符计算题,【单选题】下列运算符中是C语言关系运算符的是().
- 极验滑块验证码破解最新版
- 《英语口语900句 (624页+360分钟录音)》(Oral English 900 Expressions)
- 「可口可乐 + Zion」7天上线小程序是如何做到的?
- 自习室的泡利不相容定律(C语言实现)
- 洞见未来|电力可视化运营大脑——Wyn BI数据可视化建设方案
- Node.js.不要堵塞线程(一)
- 科学-建筑学-建筑美学:建筑美学百科
- UGREEN 绿联 USB 2.0转串口DB9 打印线 驱动安装教程
热门文章
- Spring boot短信验证登录
- Vue 自定义音乐播放器组件为H5添加背景音乐
- 无线传感器网络体系结构
- ESP32 FreeRTOS-调试任务实用工具(4)
- 现代远程教育入学指南(石油大学)--入学篇---在线考试
- 【NOIP2013初赛】整除
- DRF 自动生成接口文档
- c语言联想输入法算法,华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能...
- linux freemodbus tcp,FreeModbus LINUXTCP Compile ERROR
- 现代数学的基本概念:数学是一门研究数量、结构、变化以及空间等基本概念和方法的学科,数学的本质在于研究数学对象之间的关系。