《编程之美》中的一道错题 4.1 金刚坐飞机
4.1 金刚坐飞机问题 话说,这道题的解法和答案都是有问题的,我们只看原题: 现在有一班飞机将要起飞,乘客们正准备按机票号码( 1, 2, 3, … N )依次排队登机。突然来了一只大猩猩(对,他叫金刚)。他也有飞机票,但是他插队第一个登上了飞机,然后随意地选了一个座位坐下了 。根据社会的和谐程度,其他的乘客有两种反应: 1. 乘客们都义愤填膺,“既然金刚同志不遵守规定,为什么我要遵守?”他们也随意地找位置坐下,并且坚决不让座给其他乘客。 2. 乘客们虽然感到愤怒,但还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置已经被别人(或者金刚同志)占了,就随机地选择另一个位置坐下,并开始闭目养神,不再挪动位置。 那么,在这两种情况下,第 i 个乘客(除去金刚同志之外)坐到自己原机票位置的概率分别是多少? (一)先看第一问,我认为作者总结的公式太抽象了,至少能看懂那个公式的人不多。 遇到这样的问题,就是枚举,猜出公式,然后数学归纳法。 假设N=3,即1、2、3。 先来分析第一个人的概率: 如果金刚占了1,概率1/3,那么第1个人永远没机会坐到自己座位,概率为0。 如果金刚不占1(占了2或3)——概率2/3,这种情况下,第1个人可以在1和另一个座位(2或3)中进行选择,概率1/2,即P=2/3 * 1/2 = 1/3。 合计:1/3——这是第一个人坐到自己座位的概率。