2017-06-21 79 views
1

我需要一個數組均勻分佈的shuffle方法,但檢查文檔時,我看不到明確的答案,它是「真正的隨機」。它做了一個「Fisher-Yates」的變體,這很好,但內部使用Math.random(),可能不太好。我處於Typescript/Node.js環境中。 他們有什麼好的選擇?也許即使有種子支持? 謝謝!lodash shuffle是否提供均勻分佈?

+0

在這種情況下,「真正的隨機」意味着什麼?在所有排列中均勻隨機?鑑於之前的結果,不可能預測下一個結果嗎? – user3080953

+0

@ user3080953這將是一致隨機的。目前看來我需要用Mersenne Twister來實現我自己的「Fisher-Yates」作爲rng。根據文檔 – MustSeeMelons

+0

,Math.random()應該是大致一致隨機的(http://www.ecma-international.org/ecma-262/6.0/#sec-math.random),所以lodash方法應該沒問題 – user3080953

回答

1

我需要一個均勻分佈洗牌......使用的Math.random(),它可能不是那麼好

別擔心,Math.random是完全均勻分佈。它沒有的是cryptographic security,但你似乎並不需要。如果你這樣做,crypto.randomBytes是你的朋友。