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

Random(long)构造函数的用途是什么?

汝天宇
2023-03-14
问题内容

有2个Random类的构造函数

  1. public Random()
  2. public Random(long seed)

按照用于第二构造的描述预言状态如

使用单个长种子创建一个新的随机数生成器。种子是通过方法next(int)维护的伪随机数生成器内部状态的初始值。

我不完全了解。而且我没有找到任何文章/书可以清楚地解释 为什么何时 以及 如何使用 它。

有人可以解释一下吗?


问题答案:

伪随机数生成器通过根据先前生成的数字重复生成一个新数字来工作。这意味着,如果您始终具有相同的 第一个
“随机”数,并且使用相同的伪随机数生成器来生成第二个,那么您也将始终具有相同的 第二个 “随机”数。

第一个Random构造函数构造一个带有不确定种子(序列中的第一个数字)的伪随机数生成器,因此您几乎总是以不同的“随机”数序列结束。第二个Random构造函数使用所需的
任何种子 构造一个伪随机数生成器,因此,如果给它相同的种子,则将始终获得相同的序列。

这是一个例子。如果创建Random这样的:

Random yourRandom = new Random();

它会从一些种子开始。该种子可能是42、121、3810,无论如何。您永远无法确定何时创建它。它 生成的
所有随机数均基于该种子,因此,由于它几乎总是使用不同的种子,因此您几乎总是从中获得不同的“随机”数。

另一方面,如果您创建Random类似这样的内容:

Random yourOtherRandom = new Random(36);

所有yourOtherRandom生成的数字都将从36开始计算。由于第一个数字(36)是相同的,而第二个数字是从第一个数字计算的,依此类推,yourOtherRandom因此每次运行程序时,生成的所有内容都是相同的。



 类似资料:
  • 问题内容: 我是Java的初学者,我想以一种简单的方式知道为什么您应该使用参数化构造函数而不是编译器提供的默认构造函数。 谢谢 问题答案: 默认构造函数将您的对象可能具有的所有属性设置为0,false等。如果要立即设置属性,则可以使用参数化的构造函数。当然,也可以使用您自己的构造函数为您提供在创建对象之前(技术上而言)执行代码的选项。 顺便说一句:“默认值不会为属性设置任何值”的答案是错误的。例如

  • 本文向大家介绍请解释Java中的概念,什么是构造函数?什么是构造函数重载?什么是复制构造函数?相关面试题,主要包含被问及请解释Java中的概念,什么是构造函数?什么是构造函数重载?什么是复制构造函数?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JAVA构造函数 当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java编译器会为这个类创建一

  • 问题内容: 这些来自github上的spring amqp示例,位于https://github.com/SpringSource/spring-amqp- samples.git 这些是 什么类型的Java构造函数?它们是吸气剂和吸气剂的捷径吗? 与此相反 问题答案: 这些构造函数被重载以使用调用另一个构造函数。第一个无参数构造函数使用空参数调用第二个。第二呼叫的第三构造(未示出),其必须采取,

  • 本文向大家介绍MySQL SUBSTRING_INDEX()函数的用途是什么?,包括了MySQL SUBSTRING_INDEX()函数的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 MySQL SUBSTRING_INDEX()函数在出现定界符之前从给定字符串返回子字符串。出现次数被指定为其参数。借助于SUBSTRING_INDEX()函数的语法,将会更加理解如下: 语法 这里,  St

  • 问题内容: 所以我正在学习Java。我有一个月的时间,我刚刚了解了构造函数。但是我看不到创建一个的全部目的。为什么我什么时候要使用?我知道它没有主方法,您可以从主类中调用构造函数。任何人都可以启发我这个话题,这对我有很大帮助。 问题答案: 构造函数是用来初始化/设置类实例的对象。 如果您有一个对象需要一些处理才能使用(例如,初始化成员),则应在构造函数中执行此操作。 理想情况下,您永远不应拥有“部

  • 问题内容: 在工作时,我得到了警告 而且我找不到在线替代构造函数/解决方案。我该如何解决这个问题? 更新 对于其他原始包装器类型的构造函数,我将收到类似的警告;例如 是否对这些类适用相同的解决方案? 问题答案: 您可以使用 从构造函数的javadoc中: 不推荐使用。很少适合使用此构造函数。通常,静态工厂valueOf(int)是更好的选择,因为它可能会产生明显更好的空间和时间性能。构造一个新分配