当前位置: 首页 > 面试题库 >

随机类表演奇怪?

许俊雅
2023-03-14
问题内容

在此代码中:

Random random = new Random(441287210);
for(int i=0;i<10;i++)
    System.out.print(random.nextInt(10)+" ");
}

1 1 1 1 1 1 1 1 1 1每次输出为。

为什么是这样?不Random应该…好吧…随机吗?我认为Random该类使用System.nanoTime,因此输出通常应该是随机的。有人可以解释一下吗?


问题答案:

Random类生成的值是 伪随机的
:它们是基于种子值使用确定性算法创建的。通常,(例如,如果使用无参数的构造函数)种子是使用当前时间初始化的,这显然是唯一的值。因此,生成了唯一的“随机”序列。

在这里,您使用的是恒定的种子值,该值在代码执行之间不会改变。因此,您总是得到相同的序列。恰好该序列是1 1 1 1 1 1 ...针对该特定种子的。



 类似资料:
  • 我正在尝试模拟我在上面发现的数学难题http://blog.xkcd.com/2010/02/09/math-puzzle/.然而,java random类返回了奇怪的结果。在下面的代码中,结果是预期的。第一行的输出大约为.612,第二行的输出介于.49和.51之间。int试验=10000000;int成功=0; 然而,当我切换 到 第一个数字的输出约为 .476,第二个数字的输出约为 .710。

  • Java常用的库包括和(我还看到)。还有其他人吗?我什么时候用每一个?有时我使用只是为了对我的简单数字感觉更好。事实证明,实际上允许您选择生成器。我该如何和什么时候使用这个? 最后,Java8提供了。我不知道这是什么,但它比以前的任何一个都要慢得多。应该如何以及何时使用?还有,慢是不是因为噪声源快用完了?

  • 我的第二个问题是,我知道有许多可用于Java和Python等语言的基准测试,但我试图为lambda演算寻找类似的基准测试,但没有找到任何东西。是否有机会为STLC或非类型化的lambda演算提供基准测试?

  • 我已经有一段时间没有用Visual Basic编写代码了,所以在使用MS Excel时,我忘记了很多我知道的东西。我实际上是在MS Excel 2007的开发者选项卡中进行编码。 我有一个现有的工作簿,其中包含一个名为“MySheet”的工作表。在这张表中,有一系列具有文本值的单元格,单元格的范围是A1:A10。我想单击一个按钮,然后从这个范围内的任何随机单元格中选择文本。然后,文本将显示在消息框

  • 本文向大家介绍随机链表的复制相关面试题,主要包含被问及随机链表的复制时的应答技巧和注意事项,需要的朋友参考一下 考察点:链表  

  • 问题内容: 有没有什么方法可以模拟Collections.shuffle的行为,而比较器不容易受到排序算法实现的影响,从而确保结果安全? 我的意思是不违反可比合同等。 问题答案: 不打破合同就不可能实现真正的“改组比较器”。合同的一个基本方面是,结果是可 重现的, 因此必须确定特定实例的顺序。 当然,您可以使用混洗操作预先初始化该固定顺序,并创建一个比较器来精确地建立此顺序。例如 虽然没有意义。显