java随机数种子_使用种子的Java随机数

使用种子的Java随机数

这是我的代码,使用种子作为参数来生成随机数:

double randomGenerator(long seed) {

Random generator = new Random(seed);

double num = generator.nextDouble() * (0.5);

return num;

}

每次我提供种子并尝试生成100个数字时,它们都是相同的。

我怎样才能解决这个问题?

7个解决方案

73 votes

如果您给相同的种子,那是正常的。 这是允许测试的重要功能。

选中此选项可了解伪随机生成和种子:

伪随机数发生器

伪随机数生成器(PRNG),也称为确定性 随机位发生器DRBG,是一种用于产生序列的算法 近似于随机数属性的数。 的 序列不是真正随机的,因为它完全由 相对较小的一组初始值,称为PRNG的状态, 其中包括真正的随机种子。

如果要具有不同的序列(通常在不调整或调试算法时使用),则应调用零参数构造函数,该构造函数使用nanoTime尝试每次获取不同的种子。 当然,此Random实例应保留在您的方法之外。

您的代码可能应该是这样的:

private Random generator = new Random();

double randomGenerator() {

return generator.nextDouble()*0.5;

}

Denys Séguret answered 2020-07-12T12:24:

你可能感兴趣的:(java随机数种子)