Javascript中的任何伪随机数生成器?

时间:2011-06-21 20:20:59

标签: javascript

  

可能重复:
  How to create my own JavaScript Random Number generator that I can also set the seed

Javascript是否有随机数生成器?

在你说Math.random()之前,我的要求是它应该允许种子值。对于相同的种子值,它应该生成完全相同的“随机”数字序列,并且数字序列应该是相当随机的。

1 个答案:

答案 0 :(得分:15)

对不起,这件事已经完成了:

function makeRandom(seed) {
    var next = 4; // chosen by fair dice roll.
                  // guaranteed to be random

    return function() {
        return seed + next++;
    };
}

用法:

var random = makeRandom(492347239);

var r1 = random();
var t2 = random();
...

信用:http://xkcd.com/221/


注意:要使其实际有用,请使用通用PRNG(如ARC4)替换返回的函数。上面代码的真正目的是展示如何在闭包中封装状态(即当前种子)并重复从该对象获取连续值。