当前位置: 首页 > 知识库问答 >
问题:

什么是与随机数生成算法有关的种子?为什么经常使用计算机时间来创建这个种子?

甄华清
2023-03-14

我读到种子是用来初始化随机数生成器的。但似乎种子的随机性对于从生成器获得良好的随机性并不重要。所以我想明白什么是种子?为什么这么叫?最后,为什么计算机系统中的时间被用来产生这样的种子?

共有1个答案

慕翰学
2023-03-14

伪随机数发生器产生一系列数字。它并不是真正随机的,但通常是一种数学计算,它产生的输出符合某种理想的分布,并且没有明显的模式。为了产生这样一个序列,必须为生成器存储状态,以便生成该序列中的下一个数字。每次使用上一步输出的某个部分更新状态。

种子显式初始化此状态。“种子”是一个起点,一个东西从它开始生长。在这种情况下,是一系列数字。

这可以用来总是生成相同的序列(通过使用已知的常数种子),这对于具有确定性行为是有用的。这对于调试是很好的,对于一些网络应用程序,密码学等。

 类似资料:
  • 例如下面的代码。它有一个随机类。然而,它总是在任何地方产生相同的输出。在这种情况下,哪一项是种子? 来源:link

  • 计算机(computer)是能以人的几百万甚至几十亿倍速度进行计算并作出逻辑判断的设备。例如今天的许多个人计算机每秒钟可以进行几亿次加法运算。操作台式计算器的人要几十年才能算出的数值,强大的个人计算机只要一秒钟即可计算完毕(注意:你怎么知道这个人加对了没有?你怎么知道计算机做得是否正确?)。 如今最快的超级计算机(supercomputer)每秒钟可以进行几干亿次加法运算,是成百上千的人花一整年时

  • 本文向大家介绍java生成抽样随机数的多种算法,包括了java生成抽样随机数的多种算法的使用技巧和注意事项,需要的朋友参考一下 本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示。 概述: 这里你是不是会说,生成随机数有什么难的?不就是直接使用Java封装好了的random就行了么?当然对于一般情况下是OK的,而且本文要说明的这些算法也是基于这个random库函数的。 本文主要是针对

  • 我感到困惑的是,为什么在通过for循环的每次迭代中,下面的代码会为race和gender生成相同的值对。我想像random()的初始种子值(在我的代码中没有显式声明)是在第一次迭代中获得的,然后循环根据初始种子继续到随机序列中的下一个值,但情况似乎并非如此。相反,它似乎对每个迭代使用相同的种子/值,从而导致在每个迭代中相同的种族和性别值。 最小工作示例: 有没有办法使用独立绘制的值来循环,而不是为

  • 问题内容: 我脑子里有一个大问题: 我可以使用种子数生成随机数: 但是我不明白的是那颗种子的作用。例如,有什么区别 该代码具有以下内容: 问题答案: 当您向one-arg 构造函数 提供特定的硬编码种子时,每次您运行该程序时,将生成的随机数将始终相同。当您需要可预测的随机数源时就需要这样做。 但是,当您不提供种子时,构造函数将根据为您选择一个种子。每次运行程序时,随机数都会不同,因为种子每次都会不