我心里有一个大问题:
我可以使用种子数来生成随机数:
Random rand = new Random(34666666);
但我无法理解的是那颗种子的作用。例如有什么区别
该代码具有以下内容:
Random rand = new Random();
最佳答案
当您向 one-arg Random
constructor 提供特定的硬编码种子时,每次运行程序时,生成的随机数将始终相同。当您需要可预测的随机数源时,就需要这样做。
但是,当您不提供种子时,Random
constructor将根据 System.nanoTime
为您选择一个种子。每次运行程序时,随机数都会不同,因为每次种子都会不同。
Creates a new random number generator. This constructor sets the seed of the random number generator to a value very likely to be distinct from any other invocation of this constructor.
这很重要,因为 Java 的随机数生成器是伪随机的;每个新的伪随机数都会影响用于生成的下一个伪随机数的种子。
关于java - 种子在随机数生成中的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25795035/