使用种子的Java随机数
这是我的代码,使用种子作为参数来生成随机数:
double randomGenerator(long seed) { Random generator = new Random(seed);
double num = generator.nextDouble() * (0.5);
return num;
}
每次我提供种子并尝试生成100个数字时,它们都是相同的。
我怎样才能解决这个问题?
回答:
如果你给相同的种子,那是正常的。这是允许测试的重要功能。
选中此选项可了解伪随机生成和种子:
伪随机数发生器
伪随机数生成器(PRNG),也称为确定性随机位生成器DRBG,是一种用于生成近似于随机数属性的数字序列的算法。该序列不是真正随机的,因为它完全由相对较小的一组初始值(称为PRNG状态)确定,该初始值包括一个真正的随机种子。
如果要使用不同的序列(通常在不调整或调试算法时使用),则应调用零参数构造函数,该构造函数使用nanoTime尝试每次获取不同的种子。Random
当然,该实例应保留在你的方法之外。
你的代码可能应该像这样:
private Random generator = new Random();double randomGenerator() {
return generator.nextDouble()*0.5;
}
以上是 使用种子的Java随机数 的全部内容, 来源链接: utcz.com/qa/418289.html