簡體   English   中英

在JavaScript中獲取隨機數的最佳方法是什么

[英]What is the best way to get random number in JavaScript

在我正在開發的游戲中,我需要獲得一個非常隨機的數字。 問題在於Math.random()可以基於時間戳獲得完全相同的結果,並且我正在使用它隨機放置游戲對象,因此我需要立即獲取隨機位置。 有沒有比Math.random()更好的方法?

https://github.com/suprMax/monkyTime/blob/master/static/monkytime.js#L201

對象之間的位置非常接近。 我試圖使它更隨意地從請求動畫幀中竊取高精度時間,但無濟於事。

隨機生成器是從當前時間開始播種的事實並不能使它返回相同的結果是后續調用。 每次調用它時,它都會使用新值作為自身的種子,這只是受時鍾影響的初始值。

如果Math.random()不夠隨機(它是偽隨機數生成器),則使用真正的隨機生成器。

它將需要使用一些遠程數據來獲得足夠的熵(例如鼓風機中的球,白噪聲等)。 您可能需要為此創建或使用現有服務。

大多數瀏覽器中的偽隨機數生成器應足以在游戲中定位對象。 當然,如果正確實施,您不應一次又一次地獲得相同的結果。

如果您絕對需要結果是不可預測的(例如對於加密),則需要研究加密安全的PRNG

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM