Java 随机数生成 Random 种子(seed)的作用

不同的构造函数

Random 通常用来作为随机数生成器,它有两个构造方法:

1.不含参构造方法:

2.含参构造方法:

都调用的 setSeed 方法:

可以看到,不含参构造方法每次都使用当前时间作为种子,而含参构造方法是以一个固定值作为种子。

什么是种子 seed 呢?

seed 是 Random 生成随机数时使用的参数:

Random 中最重要的就是 next(int) 方法,使用 seed 进行计算:

其他 nextXXX 方法都是调用的 next()。

比如 nextInt(int):

再比如 nextBoolean():

举个栗子:

分别用含参构造方法和不含参构造方法创建 5 个随机生成器对象,每个随机生成器再生产 8 个随机数,对比下结果:

 

再运行一次:


总结:

通过上述例子可以发现:

随机数是种子经过计算生成的。

不含参的构造函数每次都使用当前时间作为种子,随机性更强
而含参的构造函数其实是伪随机,更有可预见性

0

发表评论

您的电子邮箱地址不会被公开。