2012-04-28 78 views
4

由於我一直在學習計算機科學,每當隨機數字出現時,它總是梅森扭轉者。從來沒有問題,沒有別的選擇。只需使用梅森扭紋機。Math.random使用什麼算法?

那麼JavaScript的Math.random使用什麼?它似乎應該使用Mersenne Twister,因爲它顯然沒有同行,但我找不到任何提及是否它。

有人知道它依賴於什麼,和/或爲什麼它不是MT,如果是這樣的話?

+0

量子計算提供了可以生成更多「自然」隨機數的算法。 [理論上] – KBN 2012-04-28 07:24:04

回答

8

這可能是特定實現。 ECMAScript specification不強制任何算法,因此Linux JavaScript實現可能非常適合使用/dev/urandom

+0

我不知道JavaScript有多個實現?我對Web開發不是很有經驗。我感覺所有的JavaScript都是一樣的。 – Aerovistae 2012-04-28 07:23:29

+0

@Aovovistae,JavaScript符合規範,並且規範沒有明確規定哪個算法應該用於隨機數。該語言有許多實現方式,例如Chrome使用的[V8引擎](http://code.google.com/p/v8/)或[SpiderMonkey](https://developer.mozilla.org/) en/SpiderMonkey)由Firefox使用。而且,JavaScript是一種通用語言,不僅限於瀏覽器,它也可以在服務器端運行,並且具有[node.js](http://nodejs.org/)等框架,甚至可以在數據庫中運行服務器,如[MongoDB](http://mongodb.org)。 – rid 2012-04-28 07:30:59