Javascript的Math.random()在幕后是如何工作的?

Javascript的Math.random()在幕后是如何工作的?,javascript,algorithm,random,computer-science,Javascript,Algorithm,Random,Computer Science,我一直想知道Javascript究竟是如何选择一个随机数的,它又怎么可能是随机数呢?难道计算机不只是接收一些输入,用一些数学知识将其旋转,然后返回吗 我不是问如何用数学生成一个随机数。随机,我的问题是:当你想生成一个“随机”数时会发生什么?这到底是怎么回事?幕后发生了什么?我知道这是一个大的话题讨论,但任何链接将不胜感激 一些随机数生成器函数使用某种系统噪声或熵,例如:当前时间戳,并对其应用一些数学函数来生成随机数。它们是真正的随机数 有些函数使用种子值和算法生成看似随机的数字,但实际上是可预测

我一直想知道Javascript究竟是如何选择一个随机数的,它又怎么可能是随机数呢?难道计算机不只是接收一些输入,用一些数学知识将其旋转,然后返回吗


我不是问如何用数学生成一个随机数。随机,我的问题是:当你想生成一个“随机”数时会发生什么?这到底是怎么回事?幕后发生了什么?我知道这是一个大的话题讨论,但任何链接将不胜感激

一些随机数生成器函数使用某种系统噪声或熵,例如:当前时间戳,并对其应用一些数学函数来生成随机数。它们是真正的随机数

有些函数使用种子值和算法生成看似随机的数字,但实际上是可预测的。它们被称为伪随机数


您可以在此处阅读更多内容:

这是一个非常大的主题,属于范围太广的类别。幕后有很多数学理论。请用谷歌搜索伪随机数生成器以获得初步想法。我不同意,因为这个问题只涉及定义良好的环境集。很多事情都可能发生。进入随机性的一个因素是:系统当前时间戳,因为它处于等待状态,我将在这里留下一个指向ECMAScript规范的链接:获取时间戳并应用数学函数听起来不像是一个真正的随机数生成器…@FelixKling insert von Neumann在这里引用。时间戳精确到小数点后6-7位,并通过键盘上的按键来记录,这只是一个示例。这几乎是不可能预测的。