JAVA中随机数的生成方法
JAVA中随机数的生成方法
概述
本文先讲解java随机数的几种产生方式,然后通过实例对其进行演示
广义上讲,java随机数的产生有三种方式:
- (1). 通过System.currentTimeMillis()来获取当前时间毫秒数的long型数字
- (2). 通过Math,random()返回一个0到1之间的double值
- (3). 通过Random类来产生一个随机数,这是专业的Random工具类,功能强大。
使用举例
- 第一种
通过System.currentTimeMillis()来获取随机数。实际上是获取当前时间毫秒数,它是long类型。使用方法如下:
long l = System.currentTimeMillis();
若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:
long l = System.currentTimeMillis();
int i = (int)(l%100);
- 第二种
使用此种方法得到随机数,实际上是产生一个0(包含)到1(不包含)的浮点数。使用方法如下:
double d = Math.random();
若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:
double d = Math.random();
int i = (int)(d*100);
- 第三种
使用Random类来生成随机数。
使用方法如下:
- 创建Random对象。有两种方式创建Random对象:
Random rand = new Random(); //默认构造方法
Random rand = new Random(1000); //指定种子数字
- 通过Random对象获取随机数,Random支持的随机值类型包括: boolean, byte, int, long, float, double,比如获取[0, 100)的int整数。方法如下:
Random rand = new Random();
int i = rand.nextInt(100);
Random类的函数接口
// 构造函数(一): 创建一个新的随机数生成器。
Random()
// 构造函数(二): 使用单个 long 种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed); } next 方法使用它来保存随机数生成器的状态。
Random(long seed)
boolean nextBoolean() // 返回下一个“boolean类型”伪随机数。
void nextBytes(byte[] buf) // 生成随机字节并将其置于字节数组buf中。
double nextDouble() // 返回一个“[0.0, 1.0) 之间的double类型”的随机数。
float nextFloat() // 返回一个“[0.0, 1.0) 之间的float类型”的随机数。
int nextInt() // 返回下一个“int类型”随机数。
int nextInt(int n) // 返回一个“[0, n) 之间的int类型”的随机数。
long nextLong() // 返回下一个“long类型”随机数。
synchronized double nextGaussian() // 返回下一个“double类型”的随机数,它是呈高斯(“正常地”)分布的 double 值,其平均值是 0.0,标准偏差是 1.0。
synchronized void setSeed(long seed) // 使用单个 long 种子设置此随机数生成器的种子。
作者:凌风若果
来源链接:https://blog.csdn.net/qq_40223083/article/details/108432297
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。