随机数的惊人复杂性

本文翻译自 The Surprising Complexity of Randomness,原文作者:Brett Romero,2017 年 5 月 20 日。
之前,在一次不使用数据库创建一个简单应用的经历中,我接触到了随机性(randomness)。随机性和随机数生成是计算机科学领域一个非常艰深又重要的部分,但同时也是一个计算机科学领域之外鲜有人知的概念。因此,本着人人为我、我为人人的期望,我将在本文中谈谈随机性那惊人的复杂性(complexity)。

我们为什么需要随机性?

随机性有很多用途。但首先,需要强调一件事:当涉及计算机和计算机科学时,随机性通常是通过随机数体现的。随机排列的数字序列可以用于很多不同的目的,从简单随机播放音乐列表到更重要的为安全登录、数据加密生成随机密钥,还可以用在涉及大量金钱的在线赌博中进行随机洗牌。

时间跳跃者

2020 年 1 月 3 日,我不知怎么造出了时间机器,但它却出了故障,让我不断地向未来跳跃:在地球出现 100 分钟后,我就会向未来跳跃大约 100 年。
在第一次跳跃时,我自然认为是自己的时间机器取得了完美的成功。我的时间机器载着我出现在一个商场中,时间是 2120 年 1 月 3 日 19 时 12 分。几个机器人围了上来,询问我的身份。我自然说了实话,说自己是来自过去的时间旅行者。机器人却并不惊讶,或者这时代已经满是时间旅行者了,但更可能是机器人本就不可能对任何事情感到惊讶。一个机器人说:「难怪我没查询到有关你的任何数据。」