Random 我们如何知道序列是伪随机的还是真随机的?

Random 我们如何知道序列是伪随机的还是真随机的?,random,Random,给定一个序列(ex 1 4 3 5 3 6…)及其范围(ex 1-10),知道它是由“随机生成器”生成的。 如何知道“随机生成器”是伪随机还是真随机(假设序列是无限的)。显然。首先,你唯一能观察到的是一个有限的数字序列。即使序列是真正随机的,每个可能观测到的序列发生的概率也不是零。你可以连续观察到20条尾巴,这与投掷一枚真正公平的硬币完全一致。相反,任何有限序列,无论看起来多么随机,都可以由确定性过程生成 话虽如此,有各种统计测试(最著名的是乔治·马萨格里亚开发的)可以应用于序列。他们不能肯定地

给定一个序列(ex 1 4 3 5 3 6…)及其范围(ex 1-10),知道它是由“随机生成器”生成的。
如何知道“随机生成器”是伪随机还是真随机(假设序列是无限的)。

显然。首先,你唯一能观察到的是一个有限的数字序列。即使序列是真正随机的,每个可能观测到的序列发生的概率也不是零。你可以连续观察到20条尾巴,这与投掷一枚真正公平的硬币完全一致。相反,任何有限序列,无论看起来多么随机,都可以由确定性过程生成


话虽如此,有各种统计测试(最著名的是乔治·马萨格里亚开发的)可以应用于序列。他们不能肯定地证明一个序列是随机的或伪随机的,但设计糟糕的伪随机数生成器在这些测试中表现不佳。另一方面,如果一个序列在这些测试中表现良好,那么(在不知道数字来源的情况下)几乎不可能判断它是来自伪随机数生成器还是真正的随机源。50多年研究的全部目的是确保你的问题的答案是“不——你说不出来”

为了补充约翰写得很好的回答,我想补充几点

首先,我相信在每一个“随机发生器”中,正如你所说,没有一个随机数是真正的随机数。更进一步,我们不知道一种方法来产生一个真正的“随机”数字序列。你能得到的唯一真正的随机性来自量子化粒子,因为它们不是决定论的,在某种程度上可以被认为是随机的。当你有一个网站或一个程序给你一个随机数时,它来自一个决定论方法,如果我们知道所有的初始条件,理论上可以推导出来。例如,一些更“随机”的算法使用大气的变化来产生看似随机的结果(参见示例)。然而,如果我们能得到瞬间T上使用的所有参数,理论上你可以“猜测一个随机数”

但是,如果您无法识别数据中的某个模式,您可以做的是对您的数据进行一次分析。正如John所说,有许多方法可以识别随机值之间的相关性,您可以获得有关数据的一些信息。您可以使用许多数学编程工具(例如Matlab、Maple…)上的工具来尝试分析数据。但是,最终,你可能永远无法完全肯定你的结果的真实性


所以,就像约翰说的,,你不能。

这不再是事实。许多物理系统显示出绝对100%的真实量子不确定性,其中许多是或可以连接到您的计算机上。所有现代处理器都包括一个真正的随机源和访问它的微码,通常是一个反向偏置二极管。移动设备有摄像头——可以使用CCD或CMOS光电探测器。如果您没有这两个,您可以购买任意数量的具有类似来源的插件设备。如今,只要有合适的硬件和软件,每个人都可以随时获得真正的、真实的、完全非伪随机数。