计算机如何生成随机数?

综合问答 1年前 (2023) http://www.bktl.cn

网友解答:

最早的随机数生成与计算机的先驱冯诺依曼联系到一起的。 随机数可以分为两种,一种为真随机数,一种为伪随机数。

真随机数的生成过程是完全不可预测的,因此要生成一个真随机数,计算机需要检测外部发生的某种物理现象。比如说,可以测量某个原子的放射性衰变。根据量子理论,原子衰变是随机而不可测的,所以这就是宇宙中的“纯粹”随机性。

计算机生成真随机就依赖于硬件设备。更具体一点的例子就是计算机可以根据当前CPU的频率以及温度等来生成随机数,或者根据环境中的噪音或者采取你敲击键盘的精确时间作为随机数据,这种随机数的生成方式被称为硬件随机数生成器。

而伪随机数则是运行程序产生的随机数。计算机通过发送种子数值,运用算法产生某个看起来像随机数的数字。但是实际上这个数字是可以预测的。因为计算机没有从环境中收集到任何随机信息。

常用的伪随机数生成器有线性同余方法(LCG)。它是根据递归公式:

其中A、B、M都是生成器设定的常数,mod为对M取余数。

给定种子数字X0即可由此产生线性同余的随机数列。往往为了方便,X0取计算机的系统时间。因此对于线性同余的伪随机数生成器,给定同一个初始值,那么产生的伪随机数列也是相同的。由此生成的随机数范围为0到M-1。

因此在对随机性要求不高的情况下,往往只需要生成伪随机数即可,比如游戏中的抽奖,那么用的是真随机数或伪随机数并不重要;但是如果你的应用正在加密,情况就不同了,因为你不希望攻击者能够猜到你的随机数。

网友解答:

随机数是专门的随机试验的结果

计算机如何生成随机数,是指计算机编程语言生成随机数,我们利用计算机的编程语言的函数生成一个随机数,其实生成的是伪随机数。电脑随机数都是伪随机数,随机数的生成算法有很多种,基于算法的随机数,意味着生成的数据是可重复的。

真正意义上的随机数在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的。我们可以这样认为这个可预见的结果其出现的概率是100%。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。

随机函数

在这里以Python为例,生成随机数据的样例。在python中用于生成随机数的模块是random,在使用前需要import。

随机产生整数

随机产生小数

随机偶数

以上是以Python举的例子,希望能够有所帮助。不过,细想一下计算机是一种可确定,可预测的的设备,想通过一行一行的确定的代码自身产生真随机,显然有点力不从心。

版权声明:1f80f8566de70368 发表于 2023-04-19 10:36:12。

本文由第三方用户分享仅代表作者观点,不代表本网站立场,秉承互联网开放分享的精神,目的在于传递更多信息,加强各行业互通交流,但对内容不作任何保证或承诺,请读者自行参考斟酌。网站发布的信息(包含但不限于版式、图片、字体、文章等素材)由第三方用户分享,版权归原作者所有,本站不承担任何相关的版权纠纷等相关责任。如您认为本篇内容侵犯了您的权益,请与我们联系,我们会及时处理。

百科塔让百科知识为更多人带来价值。

转载请注明:
本文标题:计算机如何生成随机数?
本文地址:https://www.bktl.cn/1520416.html