1 线性乘同余法
A[n+1] = (a*A[n] + c)mod m
同余指的是取模
2 实型随即序列
R[n] = A[n] / float(m) 得到的区间在[0,1)
R[n] = A[n]/float(m-1) 得到的区间在[0,1]
注:m值尽可能的大
3 周期m的条件
# c m互质
# a-1 与m有公约数p,且a-1是p的倍数
# 若m是4 的倍数,a-1也是
例 a=5 c =1 m=16 ->周期为m
4改进算法
以上算法,在三维及以上空间内,总是聚集在一些超平面,即随机数是关联的
改进: A[n] = (a*A[n-1] +b * A[n-2]) mod m
5 随机数的区间转换
N = a + (b-a)*R [0,1] -> [a, b]