java - 种子在随机数生成中的作用

标签 java random

我心里有一个大问题:

我可以使用种子数来生成随机数:

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/

相关文章:

PHP/MySQL 按日期和随机排序

java - PDF 提取中缺少表格布局信息

java - 选择条形图类别标签

java - 使用 LIKE 仅搜索包含年份和月份的日期

python - 列出 1-50 范围内的 50 个随机数,使得相邻数字彼此不在 15 以内

random - Octave - 随机生成数字

python - 随机列表生成不起作用

java - 在 Dom4j 中使用 Xpath

java - CSV Java文件读取和保存(在不同的ArrayList中)

java - 数组中的随机数