随机性意味着无法预测。真正的随机性只存在于自然世界中。什么地方有闪电是随机的;如果有个地方正在酝酿风暴,可以相当确定那里会有闪电,但无法精确预测具体位置一所以不要站在树下。
天气是随机的,每一天都会有明天的天气预报,通常是用昂贵的大型计算机来预测天气,尽管功能无比强大,但还是经常不准确。
为了描述一个数作为随机数所需要的环境,这里举例一个先前的数字序列。2 本身并不是随机数,它就是 2。然而,如果 2 是序列 46、1011、874、34、998871 中的下一个数,那么它就可能是随机数序列中的一个值。一个数是随机的,假定它出现在一个序列中,并且不能通过序列前面的元素来推测。当然,这并不意味着连续序列必须是不同的。序列 4、4、4、4 可能或不可能是一个随机序列的一部分。连续扔 4 次骰子可能会出现这种情况。这样就很难判断一个给定的序列是否是随机的,对于随机性有特别的数学测试,但在本教程中不打算讨论。
数字计算机是确定性的,这意味着它对于给定的一系列输入值总会生成完全相同的结果。因此,除非硬件出现了严重的错误,否则任何程序代码生成的结果都不可能是随机的。因此计算机不能计算出随机数序列,下一个数的值总是由生成它的算法决定。然而,数字计算机可以产生数字的伪随机序列。它们是序列,因为伪随机属性只对序列这种环境有意义;被称作伪随机数是因为它们是由计算机生成的,因此并不是真正意义上的随机。话虽如此,仍会去掉“伪”一在本章剩下的部分把它们当作随机的。