Random也可能不随机数,俺被教育了

 现附上一个链接:http://blog.sina.com.cn/s/blog_64d5f4bd0100h0zz.html

疑问代码:Random rand = new Random(47);
     int nonce = rand.nextInt();

nonce的结果是:nonce=-1172028779,每回都是这个值,很奇怪

记录一些关键字句:
  随机数不随机,是因为,
Random()它有两种形式的构造函数,分别是Random()和Random(long seed)。
Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,
Random(long seed)使用指定的seed作为发生器的种子。

随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。 如果两个Random对象使用相同的种子(比如都是25),并且以相同的顺序调用相同的函数,那它们返回值完全相同。   

因为在不指定种子的构造函数时系统根据当前时间生成种子,每个种子对应一个数列,相同的种子会得到相同数列,而不是数值。所以如果在构造函数中指定种子,会得到同一个数列。 

  官方给出的解释:int nextInt() :返回下一个伪随机、均匀分布的int值从这个随机数生成器的序列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值