线性同余法求伪随机数的公式:
X(n+1) = (a Xn + c) mod m
公式中 0 < m , 0<=a<m, 0<c<m, 0<=X(0)<m
公式主要用到递归方法得到模除后的伪随机数,从X(0)到X(n),每一项都只依赖于前面一项,X序列将产生m个不同的数,然后重复。
int rand(unsigned int seed) { return (unsigned int)(seed * 1103515245 + 12345) % 32768; } int main() { int x=12,i=0; for(i;i<100;i++) { x = rand(x); printf("%d,",x); } return 0; }