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

App*_*rew 3 javascript

可能重复:
如何创建我自己的JavaScript随机数生成器,我也可以设置种子

Javascript是否有随机数生成器?

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

Aln*_*tak 15

对不起,这个必须要做:

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

    return function() {
        return seed + next++;
    };
}
Run Code Online (Sandbox Code Playgroud)

用法:

var random = makeRandom(492347239);

var r1 = random();
var t2 = random();
...
Run Code Online (Sandbox Code Playgroud)

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


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