大家好 我最近开始学习java,我有这个问题,随机obj种子代表什么?这是什么意思 ?和
之间的区别随机r1 = new Random(); 随机r2 = new Random(3);
答案 0 :(得分:1)
这不仅仅是一件事。
让计算机生成真正的随机数非常困难。您的计算机需要执行复杂的不可预测的计算。 您的种子值将作为这些计算的输入。
许多系统都会使用时间戳作为种子。因为这是每次运行时都会有所不同的值。 但是,让我们说你确实指定了种子,并且你多次使用相同的种子:
Random rnd = new Random(10);
System.out.println(rnd.nextInt());
System.out.println(rnd.nextInt());
System.out.println(rnd.nextInt());
// do it again with the same seed
rnd = new Random(10);
System.out.println(rnd.nextInt());
System.out.println(rnd.nextInt());
System.out.println(rnd.nextInt());
此代码将打印相同的3个值2次。
输出:
-1157793070
1913984760
1107254586
-1157793070
1913984760
1107254586
因此,如果您重复使用种子值,它将生成相同的数字。
答案 1 :(得分:0)
通过
Random r1 = new Random();
即使调用具有相同参数的r1
方法的相同序列,您也会在应用程序调用之间获得不同的返回数字序列。但是,如果您提供特定的种子编号,则返回结果的序列将是相同的(当然,只有在相同的方法和参数序列中调用r2
时)。
如果您对某些随机生成的数据集执行操作,此功能通常在测试中非常有用 - 它允许在每次测试运行时生成相同的数据集。