计算机的随机数是伪随机

计算机中的随机数

  • 我们平时通过摇骰子来扔出点数
  • 这个事情是随机的(不考虑作弊)
  • 但是作为计算机的大脑,cpu 可不会摇骰子
  • 所以它只能通过公式算出来,而且是根据随时在变的时间
  • 具有周期性
  • 有很多种公式,这里介绍一下线性同余法

线性同余法

  • 计算公式是(a+b*r)%c,就是取余数
  • a,b,c 都是系数(也称为随机数的种子),r 是上次算出来的随机数
  • 我们先把 r 设为 0,a,b,c 分别为 1,2,3
1 2 3 4 5 6 7 8 9 10 11 12
0 3 2 5 4 7 6 1 0 3 2 5
  • 容易看出,产生 8 次随机数后,下次产生的也就相同了,这就是所谓周期性
  • 所以要看起来更随机的话,随机数的种子要根据时间来变化