什么是随机数?

Read Time:53 Second

随机数的定义

随机数生成是一个过程,通常通过随机数生成器RNG ),RNG是Random number generator的首字母简称,生成无法比随机机会更好地合理预测的数字符号序列。这意味着特定的结果序列将包含一些事后可检测但不可预见的模式。真随机数发生器可以是硬件随机数发生器(HRNGS)生成随机数,其中每一代都是物理环境属性的当前值的函数,该属性以实际上不可能建模的方式不断变化。这与由伪随机数生成器 (PRNG) 完成的所谓“随机数生成”形成对比,伪随机数生成器(PRNG) 生成的数字看起来是随机的,但实际上是预先确定的——这些生成可以简单地通过了解 PRNG 的状态来复制.

随机性的各种应用导致开发了几种不同的方法来生成随机数据。其中一些自古就有,其中有著名的“经典”例子,包括《易经》中的掷骰子硬币洗牌、使用占卜,彩票、赌博、密码、统计、游戏以及无数其他技术。由于这些技术的机械性质,生成大量足够随机数(在统计学中很重要)需要大量工作和时间。因此,有时会以随机数字表的形式收集和分发结果。

存在几种用于生成伪随机数的计算方法。所有这些都没有达到真正随机性的目标,尽管它们可能会成功地满足一些随机性统计测试,这些测试旨在衡量它们的结果有多不可预测(即,它们的模式在多大程度上是可辨别的)。这通常使它们无法用于密码学等应用程序。然而,精心设计的密码安全伪随机数生成器(CSPRNGS) 也存在,具有专门设计用于密码学的特殊功能。具体详情请见维基百科

随机数生成器主要分为两种:真随机数生成器(TRNG)和伪随机数生成器(PRNG)

真随机数生成器 (TRNG)

真随机数生成器使用各种自然来源来确定随机数。例如,您可以在世界各地的嘈杂区域设置 100 个麦克风,组合的声音输出可用于“随机化”数字。随机的声音被翻译成数字。

这基本上就是真正的随机数生成器的工作方式。没有进行计算的“计算机算法”。这些数字真是一团糟。这就是让他们如此难以预测的原因。

如果您观看未调谐的电视,您会看到如下所示的“白噪声”:

来自未调谐电视的静态向我们展示了真正随机的样子

每当生成真随机数时,硬件都会用于接收来自太空的辐射等事物。所以这很像我的 100 个麦克风的例子。

假设使用了来自太空的辐射,随机数的不可预测性取决于当时的辐射,以及所用硬件的质量。这种“消费者”硬件的一个例子如下:

众多TRNG之一

即使使用辐射作为源,这并不意味着异常大的辐射波会使随机数更可预测。如果设备设计和构造得当,您不会注意到任何差异。

伪随机数生成器 (PRNG)

伪基本上意味着“假”。伪随机数生成器 (PRNG) 是一种计算机程序,它试图将数字随机化,使其不可预测。但是因为它们是基于一组规则的,所以它们在某些方面仍然是可预测的。

PRNG 不使用“随机辐射”,而是使用计算机的内部时钟与算法相结合。

例如,计算机可能正在测量毫秒。一秒 = 1,000 毫秒 (MS)。计算机的时钟可能每天重置为 0。在当天+1MS 时,随机数可能是34。在当天+2MS 时,随机数生成器可能是18,依此类推。

有无数的 PRNG 算法。以上只是一个简单的例子。如果使用这种简单的算法,并且您可以在 PRNG 计算机上同时精确地得到一个随机数,那么您将得到相同的数字。所以它并不是真正的“随机”。

但即使赌场使用这样的算法,你仍然会遇到以下问题:

  • 您不知道计算机的时钟何时开始或结束。
  • 您不可能以 1 毫秒的精度点击。

真正的赌场使用更复杂的 PRNG,因此您会遇到更大的问题。本质上,最好的 PRNG 表现得好像每个游戏结果的算法都会发生变化。这使得 TRNG 和 PRNG 之间的结果几乎无法区分。一些在线赌场使用 TRNG,但即使它们并不完美,并且存在制造缺陷。

当然还有量子随机数生成器(QRNG)不常用,不在我们研究范围之内,因为应用还不是很成熟和普及。

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注