在讨论如何建立有随机行为的程序之前,首先应当了解“随机”到底是什么意思。
以扔硬币为例。如果把一个硬币抛向空中,让它着地,可能正面朝上,也可能背面朝上。一般来说,正面朝上和背面朝上的机会是一样的。有时你会得到正面,有时则是背面。每次抛的时候,你都无法知道会得到什么。因为抛一次的结果不能预测,我们称之为随机。抛硬币就是随机事件的一个例子。
如果抛硬币的次数很多,可能会发现正面朝上次数和背面朝上次数基本相同。不过这一点永远也不能保证。如果抛 4 次,可能会得到 2 次正面 2 次背面;但是也可能得到 3 次正面 1 次背面,或者 1 次正面 3 次背面,或者甚至连续 4 次正面(或 4 次背面)。如果抛 100 次,可能得到 50 次正面。但是也可能得到 20、44、 67 或者甚至 100 次全都是正面!全都是正面的可能性不大,但是确实有可能发生。
这里的关键是每次事件都是随机的。尽管大量抛硬币可能会存在某种规律,但是每一次抛硬币正面朝上或背面朝上的可能性都是一样的。换种说法,也就是说硬币没有记忆。所以即使你刚刚连续抛出了 99 次正面,你可能认为不太可能连续得到 100 个正面,但下一次抛出仍有 50% 的可能会得到正面。这就是随机的含义。
随机事件就是可能有两个或多个结果的事件,你无法预测会得到哪一个结果。这里所说的结果可能是一副牌中的纸牌顺序,或者是掷骰子时的点数,或者是一个硬币哪一面朝上。