【问题标题】:generating "random" numbers that are the same every time with javascript (i.e. seeded random numbers) [duplicate]每次使用javascript生成相同的“随机”数字(即种子随机数)[重复]
【发布时间】:2011-05-06 07:13:39
【问题描述】:

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

所以,如果我有这个功能:

function randArr(count, low, high) {
    var result = [];
    for (var i=0; i<count; i++) {
        result.push(seededRand(low, high));
    }
    return result;
}

每次我打电话给randArr(5, 1, 100) 我都会得到相同的数组,例如[54, 23, 1, 9, 15]。

更新:我认为这是dupe,但由于评论者似乎很困惑,问题是,如何写seededRand()?

【问题讨论】:

标签: javascript random


【解决方案1】:

你想要那个 seededRand 函数吗?

你可以自己实现一个伪随机数函数。

我用谷歌搜索了“javascript mersenne twister”,例如找到了这个页面: http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/JAVASCRIPT/java-script.html

如果许可证适合您,您可以使用它。

【讨论】:

    【解决方案2】:

    您需要实现一个随机数生成器,您可以在其中设置一个种子。

    不久前我需要在 ActionScript 中执行此操作,我使用了 Blum Blum Shub,因为它很容易实现。实现mersene twister 也应该是可能的,并且应该给出“更好的随机”结果。

    【讨论】:

    • Blum Blum Shub 相当不错,但处理成本确实更高。 Mersenne Twister 算法主要通过乘法与进位算法来播种。如果您打算使用 Mersenne Twister 来播种 javascript rand() 函数,为什么不首先使用它呢?对于简单的应用程序,我认为乘法生成器就足够了。
    猜你喜欢
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多