伪随机数生成器
许多库中的随机数生成器基于函数
\[
x_{i+1}\equiv (Ax_i+C)\mod (2^B-1)
\]
如果令 $A=48271$, $C=1$, $B=31$, 则有
\[
(48271\times 179424105+1)\mod (2^{31}-1)=179424105
\]
可以是用 Calculator 验证:
>> (48271*179424105+1)mod(2^31-1)
in> (48271*179424105+1)@(2^31-1)
out> 179424105
这说明, 如果种子(即初值) $x_0=179424105$, 则生成器将陷入周期为 1 的循环.
References:
Mark Allen Weiss 著, 张怀勇 等译《数据结构与算法分析C++描述》(第3版). P.333