伪随机数生成器通过根据先前生成的数字重复生成一个新数字来工作。这意味着,如果您始终具有相同的 第一个
“随机”数,并且使用相同的伪随机数生成器来生成第二个,那么您也将始终具有相同的 第二个 “随机”数。
第一个
Random构造函数构造一个带有不确定种子(序列中的第一个数字)的伪随机数生成器,因此您几乎总是以不同的“随机”数序列结束。第二个
Random构造函数使用所需的
任何种子 构造一个伪随机数生成器,因此,如果给它相同的种子,则将始终获得相同的序列。
这是一个例子。如果创建
Random这样的:
Random yourRandom = new Random();
它会从一些种子开始。该种子可能是42、121、3810,无论如何。您永远无法确定何时创建它。它 生成的
所有随机数均基于该种子,因此,由于它几乎总是使用不同的种子,因此您几乎总是从中获得不同的“随机”数。
另一方面,如果您创建
Random类似这样的内容:
Random yourOtherRandom = new Random(36);
所有
yourOtherRandom生成的数字都将从36开始计算。由于第一个数字(36)是相同的,而第二个数字是从第一个数字计算的,依此类推,
yourOtherRandom因此每次运行程序时,生成的所有内容都是相同的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)