傻子坐飞机问题的求解

  • Post author:
  • Post category:其他

昨晚睡觉前刷手机,看到一道傻子坐飞机的题目,是一道概率的题目.想了一下觉得还挺有意思的,写一个比较容易理解的解题方法.首先描述一下问题.

傻子坐飞机:假设有n个人(编号分别为从1,2,3…,n-1,n)要上飞机坐在n个座位上,飞机上的n个座位也有相应的编号1,2,3,…,n-1,n,假设每个人的座位选择规则为:

  1. 第一个人是个傻子,他上了飞机后会从n个座位中随机选择一个坐下.
  2. 除了第一个傻子以外,其余每个人上了飞机后,
    2.1 如果他的座位没有被其他人占领,那么他一定要坐在自己的位置上.
    2.2 如果他的座位已经被其他人占领了,那么他就在剩余没有被占领的座位上随机选择一个位置坐下.

那么在这样的选座位规则下,最后一个上飞机的人,他能坐在自己位置上的概率是p多少?

由于这n个人除了第一个傻子以外,其余的n-1个人是不同的且每个人都有一个相应的座位,所以他登机的顺序没有关系.那么不妨假设登机的顺序为第1号,第2号,…,第n号.我们记

p

(

n

)

p(n)

p(n)为总人数为n时的概率,为了便于理解,我们先来看简单的情况.

n=1时,显然这个人一定可以坐在自己的位置上,即

p

(

1

)

=

1

p(1)=1

p(1)=1.
n=2时,

  1. 如果第1个人坐在自己的位置上,那么最后一个人(也就是第2个人)也可以坐在自己的位置上;
  2. 如果第1个人没有坐在自己的位置(位置1)上,那么最后一个人也不能坐在自己的位置上(位置2)了.

p

(

2

)

=

1

2

1

+

1

2

0

=

1

2

p(2)=\frac{1}{2}*1+\frac{1}{2}*0=\frac{1}{2}

p(2)=211+210=21

n=3时,

  1. 如果第1个人坐在了自己的位置上,那么最后一个人也一定会坐在自己的位置上.
  2. 如果第1个人坐在了第2个位置上,那么剩余的2个人的座位选择相当于n=2时的情况.
  3. 如果第1个人坐在了第3个位置上,那么最后一个人肯定无法坐在自己的位置上.

p

(

2

)

=

1

3

1

+

1

3

p

(

2

)

+

1

3

0

=

1

2

p(2)=\frac{1}{3}*1+\frac{1}{3}*p(2)+\frac{1}{3}*0=\frac{1}{2}

p(2)=311+31p(2)+310=21

相信大家已经看出了规律,很自然的推广到n个人的情况.一般的,对于n个人上飞机(n>=2),这个过程为:

  1. 如果第1个人坐在了自己的位置上,那么最后一个人也一定会坐在自己的位置上.对应的概率为

    p

    (

    n

    )

    1

    =

    1

    n

    p(n)_1=\frac{1}{n}

    p(n)1=n1
    在这里插入图片描述
    2.如果第1个人坐在了第2个位置上,那么可以将第1个人和第2个位置都删掉。
    在这里插入图片描述
    删除后,把第1个位置看做是第2个人对应的新位置,对于第2个人,由于他的座位被傻子占掉了,所以他只能从剩下的没有被占用的座位里随机选择一个,这种行为和问题定义中的傻子的行为是一样的,所以可以把第2个人看做是新的傻子.此时问题转换成了n-1个人上飞机的问题,对应的概率为

    p

    (

    n

    )

    2

    =

    1

    n

    p

    (

    n

    1

    )

    p(n)_2=\frac{1}{n}*p(n-1)

    p(n)2=n1p(n1)

在这里插入图片描述
3.一般的,假设第1个人选到了第m个位置,对于第2、3、…、m-1个人,他们都可以去选择对应的第2、3、…、m-1的座位,所以这些人和相应的座位都可以被删掉。将第1个位置看做是第m个人对应的新位置,并将第m个人看做新的傻子,问题转化为m个人上飞机,对应的概率为

p

(

n

)

m

=

1

n

p

(

m

)

p(n)_{m}=\frac{1}{n}*p(m)

p(n)m=n1p(m).

在这里插入图片描述
在这里插入图片描述
把所有情况归纳起来得到,

p

(

n

)

=

1

n

1

+

1

n

p

(

2

)

+

1

n

p

(

3

)

+

.

.

.

+

1

n

p

(

n

2

)

+

1

n

p

(

n

1

)

=

1

n

(

p

(

1

)

+

p

(

2

)

+

.

.

.

+

p

(

n

1

)

)

p(n)=\frac{1}{n}*1+\frac{1}{n}*p(2)+\frac{1}{n}*p(3)+…+\frac{1}{n}*p(n-2)+\frac{1}{n}*p(n-1)=\frac{1}{n}(p(1)+p(2)+…+p(n-1))

p(n)=n11+n1p(2)+n1p(3)+...+n1p(n2)+n1p(n1)=n1(p(1)+p(2)+...+p(n1)).
即:

p

(

n

)

=

1

n

i

=

1

n

1

p

(

i

)

p(n)=\frac{1}{n}\sum_{i=1}^{n-1}p(i)

p(n)=n1i=1n1p(i)

我们得到了数列

p

(

n

)

p(n)

p(n)的递推公式,下面来计算一下

p

(

n

)

p(n)

p(n)的通项公式.稍微写两行就能得到结论了,对于

n

2

n\ge2

n2(n>=2,因为只有这样才能写出前一项n-1对应的概率值,是不是想起了高中做数列题的边界情况,没错这个问题其实就是一道亲切的数列题),有

p

(

n

)

=

1

n

i

=

1

n

1

p

(

i

)

p(n)=\frac{1}{n}\sum_{i=1}^{n-1}p(i)

p(n)=n1i=1n1p(i)

p

(

n

1

)

=

1

n

1

i

=

1

n

2

p

(

i

)

p(n-1)=\frac{1}{n-1}\sum_{i=1}^{n-2}p(i)

p(n1)=n11i=1n2p(i)
将下式代入上式,得到

p

(

n

)

=

1

n

i

=

1

n

1

p

(

i

)

=

1

n

i

=

1

n

2

p

(

i

)

+

1

n

p

(

n

1

)

=

1

n

i

=

1

n

2

p

(

i

)

+

1

n

1

n

1

i

=

1

n

2

p

(

i

)

=

(

1

n

(

n

1

)

+

1

n

)

i

=

1

n

2

p

(

i

)

p(n)=\frac{1}{n}\sum_{i=1}^{n-1}p(i)=\frac{1}{n}\sum_{i=1}^{n-2}p(i)+\frac{1}{n}*p(n-1)=\frac{1}{n}\sum_{i=1}^{n-2}p(i)+\frac{1}{n}*\frac{1}{n-1}\sum_{i=1}^{n-2}p(i)=(\frac{1}{n(n-1)}+\frac{1}{n})\sum_{i=1}^{n-2}p(i)

p(n)=n1i=1n1p(i)=n1i=1n2p(i)+n1p(n1)=n1i=1n2p(i)+n1n11i=1n2p(i)=(n(n1)1+n1)i=1n2p(i)
这里用一下裂项,

1

n

(

n

1

)

+

1

n

=

1

n

1

1

n

+

1

n

=

1

n

1

\frac{1}{n(n-1)}+\frac{1}{n}=\frac{1}{n-1}-\frac{1}{n}+\frac{1}{n}=\frac{1}{n-1}

n(n1)1+n1=n11n1+n1=n11,则有,

p

(

n

)

=

(

1

n

(

n

1

)

+

1

n

)

i

=

1

n

2

p

(

i

)

=

1

n

1

i

=

1

n

2

p

(

i

)

p(n)=(\frac{1}{n(n-1)}+\frac{1}{n})\sum_{i=1}^{n-2}p(i)=\frac{1}{n-1}\sum_{i=1}^{n-2}p(i)

p(n)=(n(n1)1+n1)i=1n2p(i)=n11i=1n2p(i)
于是可以不停的代入不停的裂项,有

p

(

n

)

=

1

n

1

i

=

1

n

2

p

(

i

)

=

1

n

2

i

=

1

n

3

p

(

i

)

=

.

.

.

=

1

2

p

(

1

)

=

1

2

,

n

2

p(n)=\frac{1}{n-1}\sum_{i=1}^{n-2}p(i)=\frac{1}{n-2}\sum_{i=1}^{n-3}p(i)=…=\frac{1}{2}p(1)=\frac{1}{2},n\ge2

p(n)=n11i=1n2p(i)=n21i=1n3p(i)=...=21p(1)=21,n2

于是得到

p

(

n

)

p(n)

p(n)的通项公式为,

p

(

n

)

=

{

1

,

n

=

1

1

2

,

n

2

p(n)=\left\{ \begin{aligned} 1, n=1 \\ \frac{1}{2}, n\ge2 \end{aligned} \right.

p(n)=1,n=121,n2
这是一个挺有意思的题目,当只有一个人时候,概率显然为1,当人数大于1时,结果始终为1/2,和人数n没有关系.
看到这个结论让我不禁对上述求解过程有了质疑,上述的求解过程又是一种”僵硬”的方法,所谓僵硬是指完全拿递推公式硬算出来的,应该是有一种更优雅的思路,能够直接得出结果为常数.暂时还没有想出来,等我想明白的时候再来更新吧.


版权声明:本文为jiongjiongxia123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。