Java中的随机数生成方法

概述:本文章共涉及Java中常用的三种随机数生成的方法,Math.random() , Random类,以及System.currentTimeMillis()


目录

第一种:   使用  Math中的random()方法,生成[0, 1.0)的double类型数据

第二种: 使用java.util.Random类实现

第三种方法: 通过System.currentTimeMillis() 获取一个当前时间毫秒数的long随机数


  • 第一种:   使用  Math中的random()方法,生成[0, 1.0)的double类型数据

想要得到某个范围内的随机数:  (数据类型)(最小值+Math.random()*(最大值-最小值+1))

例: 得到1到100的随机数

(int)(1+Math.random()*(100-1+1))

  • 第二种: 使用java.util.Random类实现

Random构造方法:

//两种构造方法:
Random r = new Random();//不包含随机种子
Random r = new Random(100);//包含随机种子
//如果使用相同的随机种子,相同次数得到的随机数字是相同的

 

Random类的接口:

//Random类的函数接口



Random()  
//构造函数1

Random(long seed)
//构造函数2,使用long型种子

Boolean nextBoolean()
//返回Boolean类型的伪随机数

void nextBytes(byte[] buf)
//生成随机数字节,并将字节存入传入的字节数组

double nextDouble()
//[0.0, 1.0)

float nextFloat()
//[0.0, 1.0)

int nextInt()
//返回int类型随机数

int nextInt(int n)
//返回[0, n)之间的随机数

long nextLong()



/*还有几个不常用的,返回随机数流的方法,
比如DoubleStream doubles​(double randomNumberOrigin, double randomNumberBound)等
详见官方文档
*/

synchornized double nextGaussian()
//返回呈高斯分布的double类型随机数  平均值为0.0, 标准偏差为1.0

synchornized void setSeed(long seed)
//设置随机数种子

例: 利用Random实现生成[1, 2.5)之间的小数

Random r = new Random();
double d = r.nextDouble*1.5+1  //最小+随机数*(最大-最小+1)

  • 第三种方法: 通过System.currentTimeMillis() 获取一个当前时间毫秒数的long随机数

例: 利用获取当前时间的方式来的到[0, 100)的随机数

long l = System.currentTimeMillis();
int random = (int)l%100;

 

  • 38
    点赞
  • 152
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值