LCG线性同余算法,基于一个递推式的算法。
X i = ( A ∗ x i − 1 + C ) % M X_i = (A*x_{i-1} + C)\%M Xi=(Axi1+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算法】