一道概率问题:

题目:有一辆汽车有N个座位,编号为1~N, 有N个人买票拿号上车,正常人按照自己的座位号对号入座,但是有一个精神病患者,在空座位中随机选择一个空着的座位就坐,正常人的座位如果被占,也将随机选择一个空着就坐,假如第一个上车的是精神病患者,其他人都是正常人,问最后一个人能坐到自己的座位的概率是多少?

对于概率统计的问题,在面试的时候,刚一看题,有点懵,习惯性的瞎猜测1/N,1/2之类的答案。但是冷静下来分析一下,其实没有那么复杂。


首先对于概率问题, 我们通常是要看样本空间,但是对这个问题,貌似样本空间很复杂,我们关心的是最后一个人,也就是第N个人(后面使用#N表示第N个人)是否座到自己的座位的问题。
猜测1/2的答案有一点是出自,样本空间只有两个事件{#N座自己的位置,#N座不到自己的位置},事件是对的,但是每个事件出现的概率是一样的吗? 这个时候,又纠结了,还是猜,再猜就是看#N-1是否座了#N的位置,这样下去,还有#N-2,...,一直到#1,即精神病人是否占用了#N的位置(后面用%N表示,第N个座位)。


虽然这样猜无法得到答案,但是却给出了一点思路的提示,既然N是很大,又那么复杂,我们何不看N=2,3,4这几个值,分析一下#N位置被占可能性能?


对于N=2,只有两个座位,两个人,#1是精神病人,那么#1占据%2的概率显然是1/2,记为P(2)=1/2
对于N=3,情况稍微要复杂一些,首先看#1有3个座位可以选择
1)#1占据%1,概率是1/3,那么后面谁的座位都不会被占用,按部就班,自己座自己的位置, 可以看成是%N被占的概率为0;
2)#1占据%3,概率是1/3,那么#2上车之后,必然座自己的位置,这是时候,#3一定座不到自己的位置,因此%N被占的概率是1/3;
3)#1占据%2,概率是1/3,那么#2上车之后,由于自己的位置被占了,所以,TA也是在剩下的座位中随机挑选,这个时候可以把TA看成是被传染的精神病人,TA选择%3的概率是1/2(只有2个座位供选择了),因此这种情况下,%N被占的概率是 (1/3)*(1/2) = 1/6
 综合三种情况看,%3被占的概率P(3)= 1/3 + 1/6 = 1/2


对于N=4, 情况更复杂一些了,但是要由耐心,已经有前面的分析了,心里开始窃喜,难道结果真的是1/2,我们先分析完N=4再YY吧。
类似N=3的分析方法
1)#1占据%1,概率是1/4,%N不会被占,因此概率为0;
2)#1占据%4,概率是1/4,#2和#3很高兴,自己座自己的位置,让#4痛苦吧,因此%N 被占的概率是1/4;
3)#1占据%3,概率是1/4,这是可以将#3看成被传染了的精神病人,为什么要这么说,就是为了分析简单,#1占据%3,没有#2什么事,剩下就看#3和#4,由于#3也成为精神病人,TA也是随机选择座位,剩下的不就是一个N=2的问题吗?的确就是啊,那么这种情况下,%N被占的概率是:P(2) * 1/4;
4)#1占据%2,概率是1/4,根据上面第三种情况看,就相当于#2是精神病人,剩下的问题就成了N=3 版本的精神病人抢座位了,哈哈,那么%N被占的概率是:P(3) * 1/4
   综合四种情况看,%4被占的概率P(4)= 1/4 + 1 /4 * P(2) + 1/4 *P(3),等于多少,这个时候,如果你还关心它的值等于多少,那就显得太心急了,这个时候,最应该关心的是是否可以推导出P(5),P(6),...,P(N)
很显然是可以的。


N=k,类似的分析一下

1)#1占据%1,概率是1/k,%N不会被占用,因此概率为0;
2)#1占据%k,概率是1/k,%N被占的概率是 1/k;
3)#1占据%k-1,概率是1/k,这是#k-1成为精神病人,问题也就变成了N=2子问题了,所以概率是 1/k * P(2);
4)#1占据%k-2,概率是1/k,这是#k-2成为精神病人,问题变成了N=3的子问题,所以概率是1/k * P(3);
...
k)#1占据%2,概率是1/k,这是#2成为精神病人,问题变成了N=k-1的子问题,所以概率是1/k *P(k-1);
综合多种情况看P(k) = 1/k * (1 + P(2) + P(3) + ... + P(k-2) + P(k-1));


到这里,我们才恍然大悟,这就是归纳法嘛,就是归纳法,可以用归纳法证明这个公式的成立。

剩下的问题就好解决了,计算P(k)是多少,这个就比较容易了,结果就是1/2。

你可能感兴趣的:(算法,概率)