LCG线性同余算法,基于一个递推式的算法。
Xi=(A∗xi−1+C)%M
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)); }
};