JAVA:Random的种子含义

您所在的位置:网站首页 种子的形状以及大小有哪些变化呢 JAVA:Random的种子含义

JAVA:Random的种子含义

2024-07-10 18:26| 来源: 网络整理| 查看: 265

JDK中关于Random的构造函数叙述如下:

public Random() 创建一个新的随机数生成器。此构造方法为随机数生成器的种子设置某个值,该值与此构造方法的所有其他调用所用的值完全不同。 public Random(long seed) 使用单个 long 种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed); } next 方法使用它来保存随机数生成器的状态。 参数:seed - 初始种子。 另请参见: Random的setSeed(long) public void setSeed(long seed) 使用单个 long 种子设置此随机数生成器的种子。setSeed的常规协定是它更改此随机数生成器对象的状态,使其状态好像是刚刚使用参数 seed作为种子创建它的状态一样。Random 类按如下方式实现 setSeed 方法: synchronized public void setSeed(long seed) { this.seed = (seed ^ 0x5DEECE66DL) & ((1L > (48 -bits));    }

next依赖于seed生成一个随机数,如果seed相同则生成同一随机数列。

观看如下代码:

Random rand = new Random(47);Random rand2 = new Random(47);   int i =rand.nextInt(100);   int j =rand.nextInt(100);   int i1 =rand2.nextInt(100);   int j1 =rand2.nextInt(100);       System.out.print(i+".");       System.out.print(j+".");       System.out.print(i1+".");       System.out.print(j1+".");

结果:58.55.58.55.

说明得到的是同一值序列而非同一个值。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3