能否证明,伪随机序列的产生规则能覆盖范围内的所有值?
例如X(n+1)=(a*X(n)+c) mod M 产生0到M-1之内的所有值
但是,我想举出一个反例,这样的式子
x0=1,公式X(n+1)=2*X(n)+4 mod 7
产生1,6,2,1这样的循环,就缺少了3,4,5这几个值,并没有覆盖啊。
感觉这个伪随机算法有问题
[解决办法]
没法证明。。
只能说当a、c足够大,相当来说m足够小,那么可以认为能产生0到M-1之内的所有值
[解决办法]
随机算法都是重复的,一般都是通过改变随机种子的值,也就是x(0)的值,通常拿时间的ms值来产生随机种子,这样就可以得到全覆盖的值了。
[解决办法]
线性同余方法并没有保证能够覆盖[0, m-1]所有的值。要做到覆盖,需要认真选择各种系数。