Random(47)

其实47就是一个种子数, 没有其他特殊的含义

通过提供的种子数,按照一定的算法生成随机数序列

 

1.指定种子数, 每一次执行获得的随机数相同

通过在创建Random对象时提供种子(用于随机数生成器的初始化值, 随机数生成器对于特定的种子值总是产生相同的随机数序列), 就可以在每一次的执行程序时生成相同的随机数, 因此输出是可验证的
  
注: 提供了种子的随机数生成器, 上面所说的生成相同随机数是相对于每一次执行程序, 而非在一次执行程序的过程中next获得的随机数

 


 

2.未指定种子数, 每一次执行获得的随机数不相同

对于Random类对象,如果在创建过程中没有传递任何参数,那么Java就会按一定的算法生成一个数作为随机数生成

JDK1.6中是按下面的方式生成种子的
   /**
      * Creates a new random number generator. This constructor sets
      * the seed of the random number generator to a value very likely
      * to be distinct from any other invocation of this constructor.
      */
     //public Random() { this(++seedUniquifier + System.nanoTime()); }
  //private static volatile long seedUniquifier = 8682522807148012L;

 

System.nanoTime() 说明:
  
  /* @return The current value of the system timer, in nanoseconds.
   * @since 1.5
  */
     // public static native long nanoTime();
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值