伪随机数预测

时间:2011-08-18 01:35:50

标签: random

我正在使用生成psudo随机数的各种方法构建程序。结果合理。我当然会得到更好的结果(从统计上来说),如果我使用visual C#中的内置随机数生成器,或者其他一些正式的psudo随机代码,我不知道该方法。这不是我的问题。

我的问题是,给定任何使用的方法,并且考虑到任何计算机生成的随机数是根据指定的公式和代码逻辑完成的,根据定义,它不是真正随机的。 hud术语psudo随机。

鉴于这一事实,是否有可能准确预测数字是多少。或者至少比一个好的猜测更准确地预测它。我的研究表明,在73%的时间里,任何正确的猜测都只是猜测。因此,为了被认为是准确的预测,它必须能够在超过73%的时间内显示正确的“猜测”,以便说它不是猜测。

假设我们不知道种子,或者如果我们知道种子,那么我们就不知道用来从种子得到结果的公式。

以下内容是在我接受了答案之后编辑的,是为了让未来的人知道我的意思。

高达73%是一个“好的猜测者” - 接受的答案说没有这样的事情。所以我会澄清一下。

在我观看的纪录片的背景下,他们加权如下(我的话不直接引用节目):

低于37%是完全错误的(或者是差的猜测者) 37%到63%是正常人猜测能力的预期范围,有些不太好。平均来说,它达到了50%左右 真的是“好的猜测者”,能够打破63%的障碍,有时甚至是因为他们知道他们的对手(在双胞胎的情况下)可能会回答并因此得到回答,或者有其他系统(在这种情况下)算命先生等等。

进行了测试以确定这些系统,并且发现任何人接近73%的障碍几乎是不可能的,并且根本不可能定期(即不止一次)显示他们得到它幸运的是第一轮。因此,定期获得超过63%但低于73%的任何人都只是被称为“好的猜测者”。

下面的答案之一建议,如果你掷硬币4次,你猜对了3次,那你得到75%。但这样做10或100次要困难得多。在上面的解释中,第一种情况表明你能够准确地预测未来,以产生影响。继续在相同的条件下进行相同的测试,即另外4次翻转,另外4次。几乎总是会使人远低于73%的标记,表明他们充其量只是一个“好的猜测者”。

我只提到这个澄清。它实际上不是问题的一部分。 感谢大家的回答和建议。

3 个答案:

答案 0 :(得分:2)

你从哪里得到73%?!统计数据并不像那样。你忽略了两个因素:

  1. 重要的不是百分比,而是错误和正确的数字。如果你猜到硬币折腾了三次,那将是75%正确,但很容易就是运气。相比之下,猜测75次中的一百次,而仍然是75%,则不太可能降到机会。

  2. 从多种选择中猜测一些东西比猜测几个选项更令人印象深刻。因此猜测硬币是头还是尾是相对容易的 - 你将是正确的一半时间。但是猜测一个随机数,可能有0到一百万的任何值,比较困难 - 即使有人只在1%的时间内正确猜测,这也是非常不寻常的。

  3. 无论如何,要回答这个问题,有了足够的伪随机数,你可能会开始预测某些模式(例如,连续的数字可能会在某个维度的“空间”中形成一个模式)。例如,这可能不会给你下一个数字,但可能会给你足够的时间来说明它是否会比平均数更大或更小。

    如果您知道基础算法,那么在某些情况下,您可以从随机数(或一系列值)向后工作以找到“内部状态”。一旦你有了,你可以预测所有未来的数字,因为你有效地并行运行同一个程序。

    设计用于避免这两个问题(以及其他一些问题)的随机数生成器被称为“安全随机数生成器”。

答案 1 :(得分:2)

根据评论中的对话,我认为可能存在一些关于工作概率的误解。

你提到能够在相当大的(100)次试验中正确地猜测硬币翻转约61%。这表明你的硬币翻转可能有偏见 - 不是真正的50/50。当你的女朋友翻转硬币时,你做得不好的事实也指出了这个结论。如果投掷硬币是公平的,它不会受到你的猜测的影响,因为你的猜测可能受到(未来)抛硬币的影响。如果你猜对方,你有50%的机会是正确的。如果你猜尾巴就一样。

没有“好”的猜测,但猜测有时是幸运的。

你还写道,骰子上的10%正确猜测率“在数字被正确碾压时,某种程度上相当于超过51%”。

你在这里有正确的想法 - 期望有人一半时间猜骰子是不合理的。事实上,他们应该大约正确地猜测6次 - 约17%。如果有人能够在长时间的一系列试验中猜测明显优于17%,那么要么他们真的很幸运(并且有一些数学,你可以说确切地说有多么幸运)或者骰子的加权。

那么这73%的数字一直在流动呢?就像你期望预测大约50%的硬币投掷或17%的掷骰子一样,纪录片的制作者可能确定73%是在这个特定背景下使用的“正确数字”。他们可能通过这个数字得到的一种方法是首先进行一次试运行,看看非双胞胎兄弟姐妹能够预测对方的反应。如果这些测试显示73%的成功率,那么同卵双胞胎必须击败这一点才能证明他们能比单纯的兄弟姐妹做得更好。这里有大量的技术细节(特别是how do we distinguish between twins who are actually better, and twins who just happened to get lucky?),但这是一般的想法。

您实际问题的答案:不,您无法预测加密安全伪随机数生成器吐出的下一个数字。如果你碰巧猜对了,那你很幸运。 (或者你在算法中发现了一个先前未知的弱点。)

答案 2 :(得分:1)

  

鉴于这一事实,是否有可能准确预测数字将是什么。

没有。为了防止存在密码强的伪随机数生成器。即使您知道所有参数(种子除外),也无法预测下一个数字。就像您无法在没有密钥的情况下反转加密哈希或解密加密邮件一样。

相关问题