使用Random类生成随机数

平时我们使用Math类中的random方法生成随机数时会有重复率高的问题,这是因为random方法其实生成的是伪随机数。

java中,除了可以通过random 方法来产生随机数之外,还可以通过一个random类来产生随机数。通过实例化一个Random对象来创建一个随机数的生成器。如 Random i=new Random()。通过这条语句就利用了Random类创建了一个随机数的生成器。不过以这种方法创建随机数时,与采用Math.random方法产生随机数的机制不同。利用现在这种方式实例化对象时,Java编译器会以系统当前的时间作为随机数生成器的种子。由于时间时时刻刻在变化的。若以这个时间作为生成器的种子,就可以保证生成的随机数真的是随机的,其生成的随机数重复率会大大的降低。 

  利用这种方法其比较方便。如可以利用提供的关键字,让程序返回一个随机的整数(采用int nextInt(10))等等。不过其返回控制要比Random方法困难一点。如现在需要系统提供一个10到50之间的随机奇数,利用这个Random类就无法完成。也就是说,利用这个Random类来生成随机数,其只能够控制上限,而不能够控制下限。其可以指定最大的随机数范围,而不能够指定最小的随机数范围。所以,在灵活性上,比Random方法要稍微差一点。 

  但对于一些特殊应用,如现在需要生成一个概率密度为高斯分布的双精度值随机数时,则通过采用 Random类的方法来创建随机数相对来说比较简单一点。  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值