【问题标题】:What algorithm does Math.random use?Math.random 使用什么算法?
【发布时间】:2012-05-08 20:11:24
【问题描述】:

自从我学习计算机科学以来,每当出现随机数时,总是 Mersenne Twister。从来没有一个问题,没有选择。只是,使用 Mersenne Twister。

那么 JavaScript 的 Math.random 使用什么?它似乎应该使用 Mersenne Twister,因为它显然没有同行,但我找不到任何关于它是否使用的参考。

如果是这样的话,有谁知道它依赖什么,和/或为什么它不是 MT?

【问题讨论】:

  • 量子计算提供的算法可以生成更“自然”的随机数。 [理论上]

标签: javascript random mersenne-twister


【解决方案1】:

这可能是特定于实现的。 ECMAScript specification 不强制执行任何算法,因此 Linux JavaScript 实现很可能使用 /dev/urandom

【讨论】:

  • 不知道 JavaScript 有多种实现方式?我对Web开发不是很有经验。我的印象是所有的 JavaScript 都是一样的。
  • @Aerovistae,JavaScript 符合规范,规范没有明确说明应该使用哪种算法来处理随机数。该语言有很多实现,例如 Chrome 使用的V8 engine,或 Firefox 使用的SpiderMonkey。此外,JavaScript 是一种通用语言,不仅限于浏览器,因此它也可以并且确实可以在服务器端运行,使用 node.js 等框架,甚至在 MongoDB 等数据库服务器中运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
相关资源
最近更新 更多