Random 随机数理解

Random 随机数理解,random,language-agnostic,Random,Language Agnostic,我不明白计算机怎么能产生随机数。 我是说什么硬件能做到这一点?计算机是否只有一个源代码来执行此操作,而所有编程语言都使用它? 提前谢谢 它可以是硬件,但像Java和C这样的大多数语言使用的是Donald Knuth在其著作《线性同余生成器》中最好解释的软件结构 正如你所能想象的,这些方法有很多优点 有人试图改进它(例如) 有大量的统计测试来评估给定的随机数生成算法,称为。(我总是想象在暴风雪中,当我听到这些测试时,大型车辆会在寒冷中通过按喇叭的方式启动。) 我敢打赌,这些伪随机数生成器上的周期对

我不明白计算机怎么能产生随机数。 我是说什么硬件能做到这一点?计算机是否只有一个源代码来执行此操作,而所有编程语言都使用它?
提前谢谢

它可以是硬件,但像Java和C这样的大多数语言使用的是Donald Knuth在其著作《线性同余生成器》中最好解释的软件结构

正如你所能想象的,这些方法有很多优点

有人试图改进它(例如)

有大量的统计测试来评估给定的随机数生成算法,称为。(我总是想象在暴风雪中,当我听到这些测试时,大型车辆会在寒冷中通过按喇叭的方式启动。)

我敢打赌,这些伪随机数生成器上的周期对于您的应用程序来说是足够的


产生一个真正随机数的最好方法是利用自然界中的量子过程

它可以是硬件,但像Java和C这样的大多数语言使用的是Donald Knuth在其著作《线性同余生成器》中最好解释的软件结构

正如你所能想象的,这些方法有很多优点

有人试图改进它(例如)

有大量的统计测试来评估给定的随机数生成算法,称为。(我总是想象在暴风雪中,当我听到这些测试时,大型车辆会在寒冷中通过按喇叭的方式启动。)

我敢打赌,这些伪随机数生成器上的周期对于您的应用程序来说是足够的


产生一个真正随机数的最好方法是利用自然界中的量子过程

它可以是硬件,但像Java和C这样的大多数语言使用的是Donald Knuth在其著作《线性同余生成器》中最好解释的软件结构

正如你所能想象的,这些方法有很多优点

有人试图改进它(例如)

有大量的统计测试来评估给定的随机数生成算法,称为。(我总是想象在暴风雪中,当我听到这些测试时,大型车辆会在寒冷中通过按喇叭的方式启动。)

我敢打赌,这些伪随机数生成器上的周期对于您的应用程序来说是足够的


产生一个真正随机数的最好方法是利用自然界中的量子过程

它可以是硬件,但像Java和C这样的大多数语言使用的是Donald Knuth在其著作《线性同余生成器》中最好解释的软件结构

正如你所能想象的,这些方法有很多优点

有人试图改进它(例如)

有大量的统计测试来评估给定的随机数生成算法,称为。(我总是想象在暴风雪中,当我听到这些测试时,大型车辆会在寒冷中通过按喇叭的方式启动。)

我敢打赌,这些伪随机数生成器上的周期对于您的应用程序来说是足够的


产生一个真正随机数的最好方法是利用自然界中的量子过程

简而言之,计算机不能轻易地制造出真正的随机数。有两种方法可以生成随机数,一种是快速但不随机的,另一种是慢速但真实的

伪随机生成器

大多数低级语言(即C)都有内置功能,允许它们生成随机数,但这不是真正的随机数生成。它的工作原理是从一个“种子”值开始,一个初始的数字字符串,然后反复修改这个种子,以创建一个“随机”字符串

它们的不足之处在于,有了正确的种子和因素,就可以创造条件迫使产生一定数量的种子。此外,由于生成的性质,绘制图形时,结果不会均匀分布。正如上面的回答者所提到的,程序员可以做一些事情使它更随机,但由于上述原因,这种方法不可能是真正随机的。大多数编程语言中的随机数生成器就是一个例子。它是硬编码的,在CPU中执行

熵发生器

通过熵产生工作的随机数通过测量一种被认为是随机的熵来工作(无序,或者,正如我所听到的定义,混沌@duffymo告诉我混沌不是一个好的同义词。对不起!)。大气和热噪声是常见的测量对象。它们通常被认为比上述选择“更好”,因为它们在很大程度上更接近真正的随机性。一个问题是它们的速度很慢——除非获得足够的熵,否则无法生成数字。例如,一个大气噪声中心随机数发生器(假设快10倍!)。它由测量熵的任何硬件来执行

量子发生器

量子发生器是熵发生器的一个子集,用于测量量子因子(经典物理学中未使用的因子),例如确定一个数。缺点是真正的量子发生器价格昂贵。例如,使用光子的路径来确定数字


希望这有帮助

简而言之,计算机不能轻易地制造出真正的随机数。有两种方法可以生成随机数,一种是快速但不随机的,另一种是慢速但真实的

伪随机生成器

大多数低级语言(即C)都有内置功能,允许它们生成随机数,但这不是真正的随机数生成。它的工作原理是从一个“种子”值开始,一个初始的数字字符串,然后反复修改这个种子,以创建一个“随机”字符串

他们在这方面做得不够,w