Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random 计算机如何产生随机性?_Random - Fatal编程技术网

Random 计算机如何产生随机性?

Random 计算机如何产生随机性?,random,Random,可能重复: 我的艺术老师总是告诉我们,计算随机性从来就不是真正的随机性。作为决定论者,我认为根本不存在随机性,但我的编程相关问题是: 计算机究竟是如何产生“随机”数的?计算机产生的随机数通常是伪随机数。请参阅: 基本上,有一种算法可以确定地生成一系列值。这些值分布在整个范围内,因此看起来是随机的,但它们是完全可预测的。通常,使用一些种子启动生成器,如果使用相同的种子,生成器每次都将生成完全相同的输出 另见 -基于大气噪声的真正随机数 -基于晶体管模拟噪声的硬件USB设备 同样值得一提的是,你

可能重复:

我的艺术老师总是告诉我们,计算随机性从来就不是真正的随机性。作为决定论者,我认为根本不存在随机性,但我的编程相关问题是:


计算机究竟是如何产生“随机”数的?

计算机产生的随机数通常是伪随机数。请参阅:

基本上,有一种算法可以确定地生成一系列值。这些值分布在整个范围内,因此看起来是随机的,但它们是完全可预测的。通常,使用一些种子启动生成器,如果使用相同的种子,生成器每次都将生成完全相同的输出

另见
  • -基于大气噪声的真正随机数

  • -基于晶体管模拟噪声的硬件USB设备


同样值得一提的是,你的艺术老师不太正确。你可以通过使用熵源(一种元素,其内容部分取决于随机性,如高精度计时器)和位混合算法(如安全散列算法)来生成真正的随机数。因此,我有一个函数,它对一个数进行一些计算,例如(简化):
函数foo($seed){return$seed*42;}
,编程语言将记住最后使用的种子,并在下一次使用新的种子,例如,旧的种子增加了一个?@MarttiLaine是的,完全正确(除了它只返回种子的一部分,而不只是乘法得到下一个种子).挑选一个好的序列是很棘手的。@MarttiLaine:差不多。看一看