Math.random使用什么算法?

4
自从我开始学习计算机科学以来,每当涉及到随机数时,总是会提到Mersenne Twister。从来没有任何疑问或其他选择,只要使用Mersenne Twister。
那么JavaScript的Math.random使用的是什么呢?它似乎应该使用Mersenne Twister,因为它显然是无与伦比的,但我找不到任何关于它是否使用的参考资料。
有人知道它依赖于什么,或者如果不是MT,为什么不是MT吗?

量子计算提供了可以生成更“自然”的随机数的算法。【理论上】 - KBN
1个回答

8

这可能与实现有关。根据ECMAScript规范,没有强制使用任何算法,因此Linux JavaScript实现可能很可能使用/dev/urandom


我不知道JavaScript有多种实现方式?我在Web开发方面经验不太丰富。我认为所有的JavaScript都是一样的。 - temporary_user_name
@Aerovistae,JavaScript符合规范,但规范并没有明确说明应使用哪种算法来生成随机数。有许多语言实现,例如Chrome使用的V8引擎或Firefox使用的SpiderMonkey。此外,JavaScript是一种通用语言,不仅限于浏览器,因此它可以在服务器端运行,例如使用node.js框架,甚至在数据库服务器中,例如MongoDB - rid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接