相关疑难解决方法(0)

为线性同余发生器挑选A,C和M.

我希望实现一个具有指定周期的简单伪随机数发生器(PRNG),并确保在该周期的持续时间内没有冲突.经过一番研究后,我发现了非常着名的LCG,这是完美的.问题是,我无法理解如何正确配置它.这是我目前的实施:

    function LCG (state)
    {
        var a = ?;
        var c = ?;
        var m = ?;

        return (a * state + c) % m;
    }
Run Code Online (Sandbox Code Playgroud)

它表示,为了使所有种子值都有一个完整的时间段,必须满足以下条件:

  1. cm是相对素数
  2. a-1可被m的所有素因子整除
  3. 如果m是4的倍数,则a-1是4 的倍数

13很容易理解和测试.然而,2,我不太明白这意味着什么或如何检查它.那么C,它可以为零吗?如果它不是零怎么办?

总的来说,我需要选择A,C和M,使得我的周期为48 ^ 5 - 1.M等于期间,我不确定A和C.

javascript algorithm math prng number-theory

16
推荐指数
1
解决办法
4690
查看次数

标签 统计

algorithm ×1

javascript ×1

math ×1

number-theory ×1

prng ×1