To decide who would play first in a human vs. AI chess match, the human contender, Garry, suggested flipping a coin. 为了决定谁在人机象棋比赛里有先走权,嘉里说,抛硬币决定。He produced a quarter from his pocket, stating heads you win, tails I win. 他从裤子里掏出一枚硬币,说正面你赢,反面我赢。The computer replied, Humans are very devious. 电脑说,人是很狡猾的。I know that your coin is not fair; the probability of heads on that coin is (2/e)^pi. 我知道你的硬币不是枚好硬币,得到正面的概率是2/e的pi次方。The computer went on to describe a method, using flips of the biased coin, which would give an exactly fair chance to both sides. 电脑接着介绍了一个方法,能利用嘉里的硬币模拟出一枚好硬币,使得得到正面和反面的概率是一样的。The expected number of coin flips required was finite. 抛硬币次数的期望值是有限的。你能想到那个方法吗?
冯诺依曼的解答:
Flip the coin twice. 抛两次硬币
If get Head followed by Tails, call the result HEAD. 假如结果是正面-反面,把这个结果定义为新的正面。
If get Tails followed by Head, call the result TAIL. 假如结果是反面-正面,把这个结果定义为新的反面。
Otherwise, twice flip again. 否则,重复上述二掷的过程。
The probability of gettting HEAD and TAIL is both x(1-x) where x = (2/e)^pi. 得到新的正面和反面的概率都是x(1-x),x的值是(2/e)的pi次方。
In fact, the exact value of bias does not matter in this simulation, as long as the bias is not 0 or 1, we can always simulate a fair coin using a biased coin. 其实在这个方法中,只要出现正面和反面的概率不是0或者1,我们就可以用相同的方法模拟出一枚好硬币,不管原有硬币出现正面和反面的概率是多少。 In finite expected time an unbiased outcome will be achieved because p*2 + (1-p)*(2+t) = t, where p = x*(1-x) and t = expected number of flips. 在有限的抛掷次数内,一个胜负结果就会出现,因为上述式子。Thus, t = 2/p = 2 / ((2/e)^pi *(1- (2/e)^pi)) ~= 8.47 flips 经计算,抛掷次数约为8.47次。