一.随机数的意义
现实生活中,有很多场景需要用到“随机数”:
- 彩票
- 棋牌游戏中的洗牌和掷骰子
- 游戏掉宝率
其中大部分是靠计算机软件生成的的“伪随机数”。伪随机数一般是由随机种子和随机算法计算生成的,也就是说,在随机种子和随机算法一定的情况下,伪随机数是可重复、可预测的。
简单来说,伪随机数具有循环长度。什么叫循环长度?就是如果第一次产生数字55,第二个产生数字107,那么循环多少次后,会继续产生55,107……
这样的序列。大部分简单算法的循环长度都是2^32左右。
引用:https://www.jianshu.com/p/1904a2ef20cb
二.产生算法
1.乘同余算法
其中,N是随机数列周期,一般选取为大素数,0<a<N为乘因子,b为加因子,通常选择0或者1,0<w(0)<N是数列的初始值,成为随机种子。
该算法对a,b的取值具有较大的依赖性。一般来说,我们可以使用以下两种取值,来获得长周期和不相关序列:</