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

Java中的默认种子PRNG

古弘
2023-03-14
问题内容

我想知道Math.random()Java中PRNG
*的默认种子是什么。据我了解,C语言中的一个基于系统时钟。在Java中是否类似?另外,每次Math.random()调用都改变种子了吗?

  • PRNG =伪随机数生成器

问题答案:

如果您阅读精美的手册,它会告诉您

首次调用此方法时,它会创建一个新的伪随机数生成器,就像通过表达式

new java.util.Random()

此新的伪随机数生成器此后将用于此方法的所有调用,并且在其他任何地方均不使用。

跟进java.util.Random(),文件说

public Random()

创建一个新的随机数生成器。该构造函数将随机数生成器的种子设置为一个很有可能与该构造函数的其他调用不同的值。

当前的实现似乎基于System.nanoTime()但可以更改,并且仍然符合文档合同。

至于每次调用都更改种子,这不是种子工作的方式。PRNG播种一次,然后产生从该初始状态演变而来的一系列值。您不应该,而Java则不应该继续播种。



 类似资料:
  • 我编写了一个小的java程序,在Windows8中使用NetBeans读取文件并进行字符串匹配。但当我在ubuntu上使用terminal编译时,出现了以下消息。在ubuntu中是否有缺省的包,用于错误中的以下包。

  • 本文向大家介绍ThinkPHP中的URL模式有哪几种?默认是哪种?相关面试题,主要包含被问及ThinkPHP中的URL模式有哪几种?默认是哪种?时的应答技巧和注意事项,需要的朋友参考一下 ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义,包括普通模式、PATHINFO、REWRITE和兼容模式。 默认模式为:PATHINFO模式,设置URL_MODEL 为1

  • 问题内容: 我知道我在这里问一些严重的101问题… 我有一些课,还有一个延伸课。在我有一个构造函数,它接受一组参数,并对其字段进行设置。派生类(例如)通常不需要进行修改。现在我的IDE给我 “ Foo中没有默认的构造函数” 。从一点点谷歌搜索,这似乎是因为“构造函数没有继承”。因此,一切都很好,但是我现在如何使它工作而不在每个派生类中复制此构造函数?我假设有一个更合理的方法? 问题答案: 使用构造

  • 我试图使用以下代码理解Java接口中的默认方法,但我无法编译它: 编译器生成了以下输出: 我无法理解这些错误。我如何更正代码中的问题?

  • 问题内容: Java 中(primitive)和(primitive wrapper)的默认值是什么? 问题答案: (对象)的默认值为。(原始) 的默认值为。

  • 当您的系统里同时安装了 java 6 及 java 7 的时候,系统默认使用的 java 版本不一定是 java 7. 运行命令 java -version, 查看输出: 如果输出中显示 “java version “1.7.0_xx”, 那么您默认的 java 版本是 java 7. 您可以略过下面的步骤。 如果输出中显示 “java version “1.6.0_xx”, 那么您默认的 jav