关于一系列纯随机数的困惑

时间:2012-08-22 15:20:04

标签: algorithm random numbers

这是关于随机数的一个大问题:一系列随机数是否可以包含重复的数字?

我对所谓的纯随机数感到困惑?我想如果我们想在0-9范围内生成一系列20个随机数,那么显然必须重复,但正因如此,我们不能说该系列是纯随机数,对吗?

3 个答案:

答案 0 :(得分:5)

当然,一系列随机数可能包含重复的数字。当你扔一个纯粹的随机骰子时,它也可以连续两次落在同一个数字上!

答案 1 :(得分:4)

一般来说,我们并不是说一个特定的序列是随机的。相反,我们讨论随机分布(许多可能的序列及其概率)。

当你翻转一枚硬币时,它可能会抬起或抬起头。头不是随机的,尾巴不是随机的。这是一个随机翻转硬币的行为。

可以从许多不同的分布中绘制(或采样)随机序列。当我们选择分销时,我们经常试图模拟一些物理过程。例如,如果我们想要按顺序建模几个模具辊,那么我们可以从1到6绘制几个整数。由于模具辊我们建模可能有重复,然后我们的绘图可能重复。序列[1,1,1]具有相同的发生概率[2,5,3]。每种可能性具有相同概率的分布称为均匀分布。

如果我们想要改组洗牌,那么就不会有重复。当一副物理牌组被洗牌时,每张牌只有一个位置;它不能重演。在这种情况下,不能发生序列[1,1,1]。洗牌的分布也是统一的(每种可能性都有相同的概率),但它不包含重复的序列。

用于从随机分布中选择序列的计算方法根据分布而变化。为了在不重复的情况下从重复发生器创建序列,我们可以简单地从生成器中收集样本,测试它是否是重复,如果是重复,则丢弃它并再试一次。这是有效的,但有更有效的方法来计算这样的序列。

还存在具有不等概率的分布,其发生在诸如找到分布的许多样本的平均值或客户的到达时间的样本中的情况。

答案 2 :(得分:3)

随机数确实包含重复序列。你的直觉在这里是不正确的是非常合理的,因为判断一个真正的随机序列与试图生成一个明显随机序列的人之间的区别的最好方法之一就是在人类生成的序列中重复的次数较少。

随机生成数字的另一个重要特性是,下一个数字的出现概率理想情况下与之前观察到的数字无关。例如,在随机硬币上翻转99个硬币作为头,不太可能,这不会影响第100个硬币上升头的几率。你可能有一个很好的例子,你的硬币实际上并没有平衡,但是......

编辑: 在回答这里提出的关于确定一系列数字是否是随机的问题时,我引导感兴趣的读者阅读关于统计随机性的维基百科文章:http://en.wikipedia.org/wiki/Statistical_randomness

一串数字(以及这些数字的生成器)的成功或失败通常是通过应用一组随机性测试来测量的。例如,如果您看到一大组数字的数字过多,您可以合理地得出数字分布不均匀的结论。类似地,如果您只计算在随机数列表中0之后发生的所有数字,那么您应该期望它们也是统一分布。您也可以在分布中获得一定数量的两位数('00'或'11)。这些测试的数量不限,你可以抛出一系列数字,并且可能是它失败的测试次数减少(与使用相同测试的另一个随机性源相比),它的“更好”的测试接近一个随机数序列

根据机器的状态确定随机数发生器的输出或使其根据输入可靠地产生输出的能力不会使其或多或少随机。只有输出的随机性很重要。但是,在随机性的应用中,攻击者确定随机数通常是什么的能力对于应用来说是非常糟糕的。 (特别是密码学和赌博应用。)