指南列表

随机真的公平吗?——伪随机数的故事

指南

事实上,计算机本身无法自行生成完全的随机数。它是通过固定的计算公式生成一串极难预测的数字序列,这被称为伪随机数(pseudo-random number)

是如何生成的

浏览器内置了生成随机数的功能。该功能从内部状态值出发,经过复杂计算后返回一个0到1之间的数字,并且每次返回时都会更新状态值以生成下一个数字。人为预测其结果实际上是不可能的。

明明是“伪”,却依然公平的原因

即使不是完全的随机,只要每个结果出现的概率均等、且无法预测下一个值,用于抽签和游戏就已经足够公平。重要的是“没有任何一个选项占优势”,而优质的随机数生成器很好地满足了这一点。

何时需要更强的随机性

在安全或加密等需要极高不可预测性的场合,会使用密码学随机数(crypto)。但对于午餐菜单、惩罚、分组这类日常决定,普通随机数完全没有问题。

总而言之,虽然“伪随机数”这个名字听起来可能不够公平,但只要概率均等、结果不可预测,用于抽签就已经完全足够了。