我正在使用 node.js 客户端应用程序来模糊远程服务器。
在 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?