Random 为什么垃圾值不能作为随机数?

Random 为什么垃圾值不能作为随机数?,random,Random,这个问题可能不是特定于语言的 有可能创建一个真正的随机数吗 如果不是为什么随机数生成必须经过某种算法,为什么垃圾值不能充当随机数 它可以。根据您对随机数的定义: (来源:) 在大多数应用程序中,您期望从随机数生成器生成一系列均匀分布的数。垃圾值不提供此特征 有可能创建一个真正的随机数吗 如果你将“真正随机”定义为不可预测,那么问题是“什么导致不可预测?” 有人试图从用户级代码中隐藏随机数生成器的状态,也就是说,理想情况下,只有内核模式代码才能切实预测下一个随机数 然而,一个孤立的计算机系统(

这个问题可能不是特定于语言的

  • 有可能创建一个真正的随机数吗
  • 如果不是为什么随机数生成必须经过某种算法,为什么垃圾值不能充当随机数

    • 它可以。根据您对随机数的定义:


      (来源:)

      在大多数应用程序中,您期望从随机数生成器生成一系列均匀分布的数。垃圾值不提供此特征

      有可能创建一个真正的随机数吗

      如果你将“真正随机”定义为不可预测,那么问题是“什么导致不可预测?”

      有人试图从用户级代码中隐藏随机数生成器的状态,也就是说,理想情况下,只有内核模式代码才能切实预测下一个随机数

      然而,一个孤立的计算机系统(没有任何外部输入)是一个确定性有限状态机。也就是说,通过了解机器的当前状态,您始终可以预测下一个状态。所以,如果你的意思是“不可预测”的软件系统一般来说,不,你不能使用确定性系统来产生“真正的随机性”根据这个定义


      还有另一种不可预测性更具哲理。即使您依赖外部输入(如大气噪声或其他方式),它们真的不可预测吗?有人可能会说,我们生活在一个确定性的世界,就像一台数字计算机,一切都是注定要发生的;所以,没有随机性。我没有答案。

      垃圾值是不可预测的,你不能对它们做出任何假设

      如果你想要一个真正的随机数,你的算法必须包含一些“真实世界”的变量(例如,CPU温度、风扇速度、环境噪音……)。否则,您的“随机”值将是非常可预测的。

      目前还没有已知的“真实”随机数生成器(到目前为止),但我们有伪随机数生成器,它生成的数字可以作为“实际”目的的随机数。

      我认为“垃圾值”是指未初始化的内存。你不会得到很好的分布,更重要的是你会得到很多重复值的序列。对于大多数需要随机数的应用程序来说,连续获取数千个相同的数字是非常无用的


      要使一个数字成为“真正的随机数”,它必须是非确定性的。由于几乎所有的事情(可能)都是确定性的,所以真的不存在随机数。在这一点上,大气噪声的混合可能是最接近的。计算机是确定性的,只能生成伪随机数,除非它们依赖于某种外部随机过程

      伪随机数生成器形成一个序列,该序列迟早会重复

      当然,很长的序列实际上可能与“真正随机”的数字无法区分

      “垃圾值”可能用于为随机数生成器种子,但问题是“种子使用的值的范围是什么?”


      它可能会引入可预测性,因为我们知道某些伪随机数生成器在相同的种子设定时会产生相同的序列。

      但是,它可以在某些时间跨度用作种子的输入。比如,每x分钟撒一粒垃圾。由于不确定性原理,我们的世界不是100%可预测的。你可以通过测量某事物来预测它未来的行为,但在测量过程中你会稍微改变它,所以在测量之后,它的未来是不可精确预测的。就我所知,有一种说法认为量子现象中的不确定性可能是我们不知道的“原因”的结果。我们只是看到了效果,并认为它是随机的。@现实:这不是问题。我们想预测实际会发生什么,而不是预测如果你不尝试预测会发生什么的话会发生什么。@actual:虽然我们仍然可以从各种来源收集噪声(并且有硬件可以这样做)以获得“真实”的随机数,但它仍然非常混乱。这是因为你可能有不可预测的确切值,但噪音仍然是有偏见的。例如,热噪声的颜色不同(即内部频率的分布)-它不是自动白噪声。因此,为了使用它们,您仍然必须消除偏见,而专用硬件的很大一部分正是为了消除偏见。这并不像你想象的那么简单。你如何定义一个“真实”的随机数?随机数发生器之外的一切都无法预测。你不能在软件中做到这一点,但热噪声或核衰变的采样是随机的。所以我们有真正的硬件随机数生成器。除了伪随机数,当然还有其他随机数的来源。对于密码学,您需要不是伪随机的随机数。一个有趣的随机数例子可以在中找到。“一些物理现象,如齐纳二极管中的热噪声,似乎是真正随机的,可以用作硬件随机数发生器的基础。然而,许多机械现象的特点是不对称和系统偏差,使其结果不是真正随机的。”
      我在看那些实际上可以实现的东西:)感谢马丁的链接,我在安全领域,在我的大学里,我在安全实验室获得了荣誉。在密码学中,我们使用伪随机生成器从种子生成字符串(实际上与随机字符串无法区分)。如果我错了,请纠正我:)