什么是随机对象种子

时间:2015-05-09 15:12:58

标签: java

大家好 我最近开始学习java,我有这个问题,随机obj种子代表什么?这是什么意思 ?和

之间的区别

随机r1 = new Random(); 随机r2 = new Random(3);

2 个答案:

答案 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时)。

如果您对某些随机生成的数据集执行操作,此功能通常在测试中非常有用 - 它允许在每次测试运行时生成相同的数据集。