0

我知道如果你这样做Math.random(),它会返回一个介于 0(含)和 1(不含)之间的随机数,但是我在哪里可以找到 JS 是如何选择返回这个数字的呢?

MDN 页面不包含较低级别的代码。

根据wikipedia here,有很多方法可以获取随机数,但是JS使用的是哪种方法。

4

2 回答 2

3

由 JavaScript 引擎供应商选择他们想要使用的随机数生成器。

只要它在区间内产生一个“随机”数字,[0, 1>它们就会符合ECMA 规范

15.8.2.14 random()

返回一个带正号的数值,大于或等于 0 但小于 1,随机或伪随机选择,在该范围内近似均匀分布,使用与 实现相关的算法或策略。

资料来源: http:
//www.ecma-international.org/ecma-262/5.1/#sec-15.8.2.14

供应商没有列出他们使用的算法(据我所知),所以除非您想浏览源代码(在可能的情况下),否则您无法找到(无论如何都很容易)。

(如果您询问安全性:请勿使用任一浏览器的内置浏览器,因为它们不适合此目的。)

于 2013-07-19T21:21:51.627 回答
0

随机数生成器 math.random() 是从当前时间播种的,就像在 Java 中一样。

于 2013-07-19T21:05:23.183 回答