1.线性同余算法
LCG(linear congruential generator)是一种伪随机数算法
LCG 算法数学上基于公式:
X(n+1) = (a * X(n) + c) % m
其中,各系数为:
模m, m > 0
系数a, 0 < a < m
增量c, 0 <= c < m
原始值(种子) 0 <= X(0) < m
其中参数c, m, a比较敏感,或者说直接影响了伪随机数产生的质量。
一般而言,高LCG的m是2的指数次幂(一般2^32或者2^64),因为这样取模操作截断最右的32或64位就可以了。多数编译器的库中使用了该理论实现其伪随机数发生器rand()。
http://www.cnblogs.com/xkfz007/archive/2012/03/27/2420154.html
2.梅森旋转算法(Mersenne twister)
是一个伪随机数算法。由松本真和西村拓士在1997年开发,基于有限二进制字段上矩阵线性递归,快速产生高质量随机数。
http://blog.youkuaiyun.com/xiaogou56a/article/details/23040173
http://blog.youkuaiyun.com/xiadasong007/article/details/18819463
3.XORshift随机数产生算法
http://en.wikipedia.org/wiki/Xorshift