java基础-随机数

我们首先来看一下维基百科的定义
伪随机性(Pseudorandomness)是指一个过程似乎是随机的,但实际上并不是。例如伪随机数(或称伪乱数),是使用一个确定性的算法计算出来的似乎是随机的数序,因此伪随机数实际上并不随机。在计算伪随机数时假如使用的开始值不变的话,那么伪随机数的数序也不变。伪随机数的随机性可以用它的统计特性来衡量,其主要特征是每个数出现的可能性和它出现时与数序中其它数的关系。伪随机数的优点是它的计算比较简单,而且只使用少数数值很难推算出计算它的算法。一般人们使用一个假的随机数,比如电脑上的时间作为计算伪随机数的开始值。正如我们再api中看到的,我们实行的只是模拟的伪随机数。真正的随机数还得物理设备产生,比如自然的噪声 蜂鸣 。

随机数种子的作用
1.设置了种子,我们每次运行的结果都一样
Random r = new Random(100);
System.out.println(r.nextInt(10));
System.out.println(r.nextInt(10));
System.out.println(r.nextInt(10));
System.out.println(r.nextInt(10));
System.out.println(r.nextInt(10));
System.out.println(r.nextInt(10));
2.没有设置种子,我们每次运行的结果都不一样
为什么,观察源代码得知,其实构造函数中,默认种子是当前的时间
public Random() { this(++seedUniquifier + System.nanoTime()); }
你可以认为种子就是一个随机数发生器的初始值。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值