0
我正在使用node.js客戶端應用程序來模糊遠程服務器。Math.random vs其他隨機算法
在node.js客戶端中使用Math.random時,我可以〜100%的時間使遠程服務器崩潰。不過,我已經嘗試了一些確定性的種子隨機數生成器,但它們都無法使其崩潰。
我懷疑它是由於Math.random或我測試過的種子發生器的特性造成的。
這是種子發生器我試過之一:
var x = 123456789, y = 362436069, z = 521288629, w = 88675123;
function random() { // See http://stackoverflow.com/a/6275875
var t;
t = x^(x << 11);
x = y; y = z; z = w;
return (w = w^(w >> 19)^(t^(t >> 8)))/(4294967296/2);
}
以何種方式將輸出是不同的Math.random()?另外,爲什麼2^32,4294967296需要除以2?
'Math.random'崩潰服務器?你確定還有其他一些問題 –
@WouterHuysentruit我知道,但要調試服務器,我最好喜歡確定性測試用例。因此試圖確定性的「隨機」數字。 – Max
我幾乎可以肯定,它不是生成器內部的代碼會導致服務器崩潰,它會影響到其他代碼的返回值。所以一個簡單的for循環,迭代0到1.0之間的所有可能的值應該足以使其崩潰。 –