【问题标题】:Is it possible to prove, if a sequence is random?如果序列是随机的,是否有可能证明?
【发布时间】:2012-12-28 14:24:09
【问题描述】:

考虑以下输入:

1,1,2,3,5,8 - 这不是随机的

2,4,8,16,32 - 这两个都没有

4,1,2,11,5,9- 这个看起来像随机序列

请问有没有这样的算法来证明输入是随机的还是不是随机的?

【问题讨论】:

  • 请定义“随机”:D
  • @Nicolas:参见 Knuth 的 计算机编程艺术 第 2 卷,第 3.5 节(“什么是随机序列?”)。
  • 为什么我在这个问题上获得了反对票?有什么问题吗?
  • @GarethRees 我试图让 OP 考虑 random "1,1,2,3,5,8" 与 "4,1,2" 相比有多少,11,5,9" !
  • @piotr_dabrowski:我认为不值得我投反对票,因为我认为这个问题无论如何都可以(已经)回答。但问题是,说一个序列“是随机的”或“不是随机的”是对术语的不当使用。数字源可以是随机的(具有一定的分布,因此具有一定的熵)或非随机的,给定的数字序列可以是随机源的输出,也可以不是。但在这种情况下,随机性不是序列本身的属性,而是它们的生成方式。

标签: algorithm language-agnostic random heuristics


【解决方案1】:

不,没有这样的证明——如果你有完全随机数,每个长度为 n 的序列的概率是相等的。 但是,有一些统计测试可以评估随机数生成器的质量,这可能是您正在寻找的。见Diehard tests

【讨论】:

【解决方案2】:

正如其他人所提到的,您无法证明序列是随机生成的。除了@timos suggested,看起来您可能还有一些额外的要求。似乎您希望确保该序列不是来自一些假设的众所周知的“非随机”序列列表。如果是这样,您可能有兴趣了解On-Line Encyclopedia of Integer Sequences

如果您有特定的顺序,您可以对照他们的数据库进行检查。例如,1,1,2,3,5,8 出现在许多序列中,但最突出的是 A000045(斐波那契数列)。像4,1,2,11,5,9 这样的序列不会出现在那里的搜索中。

这些都不能证明任何事情,但也许这更符合您在这种情况下的目标。

【讨论】:

    【解决方案3】:

    我想在这里强调一下,“随机”这个词不仅意味着同分布,而且独立于其他一切(包括独立于任何其他选择)。

    有许多“随机性测试”可用,包括通过运行各种统计探测来估计 p 值 的测试,以及估计 min-entropy 的测试,其中大致是比特序列的最小“可压缩性”级别,也是“安全随机数生成器”最相关的熵度量。还有各种“randomness extractors”,例如冯诺依曼和佩雷斯提取器,可以让您了解可以从位序列中提取多少“随机性”。然而,所有这些测试和方法只能在随机性定义的第一部分(“同分布”)上比在第二部分(“独立”)上更可靠。

    一般来说,没有算法可以仅从一个数字序列判断该过程是否以独立且同分布的方式生成它们,而不知道该过程是什么。因此,例如,尽管您可以判断给定的位序列中的零多于一,或者其中没有明显的模式,但您无法判断这些位是否——

    • 真正独立于任何其他选择而生成,或
    • 构成仅“局部随机”的极长周期序列的一部分,或
    • 只是从另一个进程中重用,或者
    • 以其他方式生产,

    ...没有关于该过程的更多信息。作为一个重要的例子,一个人选择密码的过程在这个意义上很少是“随机的”,因为密码往往包含熟悉的单词或名称,以及其他原因。

    另请参阅此问题:A Good and SIMPLE Measure of Randomness

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2015-11-23
      相关资源
      最近更新 更多