之前,在一次不使用数据库创建一个简单应用的经历中,我接触到了随机性(randomness)。随机性和随机数生成是计算机科学领域一个非常艰深又重要的部分,但同时也是一个计算机科学领域之外鲜有人知的概念。因此,本着人人为我、我为人人的期望,我将在本文中谈谈随机性那惊人的复杂性(complexity)。
我们为什么需要随机性?
随机性有很多用途。但首先,需要强调一件事:当涉及计算机和计算机科学时,随机性通常是通过随机数体现的。随机排列的数字序列可以用于很多不同的目的,从简单随机播放音乐列表到更重要的为安全登录、数据加密生成随机密钥,还可以用在涉及大量金钱的在线赌博中进行随机洗牌。