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

Any pseudo random number generator in Javascript?

本文关键字:随机数生成器 任何伪 Javascript      更新时间:2023-09-26

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

有没有Javascript的随机数生成器?

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

对不起,这必须完成:

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。上面代码的真正目的是展示如何将状态(即当前种子)封装在闭包中,并从该对象中重复获得连续值。