一 点睛
随机数的性质分为以下三类:
- 随机性:不存在统计学偏差,是完全杂乱的数列
- 不可预测性:不能从过去的数列推测出下一个出现的数
- 不可重现性:除非将数列本身保存下来,否则不能重现相同的数列
上面三个性质,越往下就越严格。具备随机性,不代表一定具备不可预测性。密码技术中所使用的随机数,仅仅具备随机性是不够的,至少还需要具备不可预测性才行。
具备不可预测性的随机数,一定具备随机性。具备不可重现性的随机数,也一定具备随机性和不可预测性。
我们将上述三个性质按顺序分别命名为“弱伪随机数”、“强伪随机数”和“真随机数”,并整理成如下表格:
二 随机性
所谓随机性,简单来说就是看上去杂乱无章的性质。我们可以用伪随机数生成器大量生成0到9范围内的整数,然后看看所生成的数列。如果是像0、1、2、3、4、5、6、7、8、9、0、1、2、...这样不断循环的,那肯定不是杂乱无章的。或者咋一看是杂乱无章的,但实际上在数列中0一次都没出现,或者整个数列中有一半都是6,这样的数列也不能算是杂乱无章的。
如果伪随机数列中不存在统计学偏差,则我们可以认为这个伪随机数列式随机的。判断一个伪随机数列是否随机的方法称为随机数测试,随机数测试的方法有很多种。
一般在电脑游戏中使用的随机数只要具备随机性就可以了。此外,在计算机模拟中使用的随机数虽然需要根据目的来进行随机数测试,