LCG线性同余算法,基于一个递推式的算法。
X
i
=
(
A
∗
x
i
−
1
+
C
)
%
M
X_i = (A*x_{i-1} + C)\%M
Xi=(A∗xi−1+C)%M
X
0
=
r
a
n
d
(
)
X_0 = rand()
X0=rand()这样只要设置一些参数就可以很快的生成随机数了。
记得加上srand(time(0))
struct Random {
int sed, A, C, M;
Random(int sed = rand(), int A = 48271, int C = 57, int M = 2147483647): sed(sed), A(A), C(C), M(M) {}
int out() { return (sed = ((A * sed + C) % M)); }
};
更多推荐
随机数生成器【LCG算法】
发布评论