首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们如何知道序列是伪随机的还是真随机的?

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

Stack Overflow用户
提问于 2015-08-11 14:01:29
回答 2查看 615关注 0票数 2

给定序列(ex 1 4 3 5 3 6.)以及它的范围(例如1-10 ),知道它是由“随机生成器”生成的。

如何知道“随机生成器”是伪随机的还是真随机的(假设序列是无限的)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-11 14:22:47

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

尽管如此,还是有各种各样的统计测试(最著名的是由George开发的死板试验 ),它们可以应用于一个序列。他们不能肯定地证明一个序列是随机的或伪随机的,但是设计不好的伪随机数生成器在这些测试中会做得很差。另一方面,如果序列在这些测试中表现良好,那么多少不可能(不知道数字的来源)判断它来自伪随机数生成器还是真正的随机源。50+多年的研究的全部目的是确保你的问题的答案是有效的“不-你不能说”。

票数 4
EN

Stack Overflow用户

发布于 2015-08-11 14:40:27

为了补充约翰的书面答复,我想补充几点意见。

首先,我相信,在每一个“随机生成器”中,正如你所称的,没有一个随机数是真正的随机数。更有甚者,我们不知道如何获得真正的“随机”数列。你能得到的唯一真正的随机来自于量子粒子,因为它们不是决定论,在某种程度上可以被认为是随机的。当你有一个网站或一个程序给你一个随机数,它来自一个确定性方法,理论上可以推导,如果我们知道所有的初始条件。例如,一些比较“随机”的算法使用atmosthere的变化来产生看似随机的结果(例如,请参阅这个随机发生器 )。然而,如果我们能得到所有在瞬间T上使用的参数,理论上你就可以“猜出一个随机数”。

但是,如果不识别数据中的模式,则可以做的是对数据执行统计分析。正如John所说,有许多方法可以识别出随机值之间的相关性,并且您可以获得有关数据的一些信息。您可以在许多数学编程工具上使用工具(例如Matlab、Maple .)试着分析你的数据。但是,最终,你可能永远无法完全肯定你的结果的准确性。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31943960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档