编程之美4.1扩展问题

这道题很有意思,不过我还是没有完全弄明白第二问解法中的若干推理步骤。用其他的方法是可以推出和题目的解一样的结果,所以可以确认原体给的答案是正确的。有空再好好看看。其实我觉得使用归纳法解第二问又清楚又简单。不过还是先看扩展问题。

 

先看第一扩展问题:

 

金刚第一个登机,然后随即选择一个座位坐下。其他乘客以随即顺序登机,并且随即坐到某个座位上。问第i名乘客座到第i个座位上的概率。

 

分析:原题和扩展问题的不同在于原题要求乘客按照顺序登机,即第i名乘客要求第i个登上飞机。看扩展问题,假设第i名乘客是第j个登上飞机,则第i名乘客可以坐到自己位置的概率为前j名乘客都没有做到位置i,并且i乘客自己恰好坐到了i上。可以看到,这和原题的第一问求解过程没有区别,因此,也可以说扩展问题的第一问的概率仍然是1/N。

 

第二个问题,金刚第一个登机,然后随机选择一个座位坐下。其他乘客以随机顺序登机,并且尽量按照自己座位的顺序作。问第i名乘客坐到第i个座位的概率。

 

第二问有一些思路,不是还没有得出很好的结果。明天再接着做。

 

假设乘客x,在第n个位置上飞机。将x坐在x位置的概率记为f(n)。下面继续分析不同的情况:

 

1. 金刚坐在位置1上,则x一定可以选择x座位。概率为1/N。

2. 金刚坐在位置x上,则x一定不可以选择x座位。概率为1/N。

3. 金刚既没有选择1也没有选择x的概率为(N-2)/N,事件记为条件P1。x在n登机,因此在金刚后而在x前有n-2个乘客。在x后面登机的有N-n个乘客。因此在条件P1下,金刚有(N-n)/(N-2)概率是不会影响x的座位的,而有(n-2)/(N-2)的概率影响x的座位。这是情况是金刚作了第2个乘客的座位,或者作了第3个乘客的座位,一直到或者作了第(n-1)个乘客的座位。其相应的x仍然可以坐x的概率分别记为q(2), q(3), ... q(n-1)

    1)先看金刚坐了n-1个登机乘客的座位的情况,容易得到乘客n-1有1/(N-(n-1)) = 1/(N-n+1)的概率坐x的座位,有(N-n)/(N-n+1)的概率不坐。即q(n-1) = (N-n)/(N-n+1)。

 

    2)再看金刚坐了n-2个登机乘客的座位的情况。乘客n-2有1/(N-n+2)的概率坐在x,1/(N-n+2)的概率坐在1,1/(N-n+2)的概率坐在n-1,(N-n-1)/(N-n+2)的概率坐在其他位子。所以q(n-2)=1/(N-n+2) +1/(N-n+2)q(n-1) + (N-n-1)/(N-n+2) = (N-n)/(N-n+1)

 

    3)再看金刚坐n-3个登机乘客座位的情况。乘客n-3有1/(N-n+3)的概率坐x,1/(N-n+3)的概率坐1,1/(N-n+3)的概率坐n-1,1/(N-n+3)的概率坐n-2,(N-n-1)/(N-n+3)的概率坐其他位子。所以q(n-3) = 1/(N-n+3) + 1/(N-n+3)q(n-1) + 1/(N-n+3)q(n-2) + (N-n-1)/(N-n+3) = (N-n)/(N-n+1)

 

...

 

可以用归纳法证明q(2) = q(3) = ... = q(n-1) = (N-n)/(N-n+1)

 

进一步有在条件P1下,x乘客坐在x位置的概率记为(N-n)/(N-2) + [ (n-2)/(N-2) ] * [ (N - n) / (N - n + 1) ]

计算入条件P1,则概率变为(N-2) / N * { (N-n)/(N-2) + [ (n-2)/(N-2) ] * [ (N - n) / (N - n + 1) ] } = (N-n)(N-1)/N/(N-n+1)

 

再算上金刚可能坐在1的概率1/N。f(n) = 1/N + (N-n)(N-1)/N/(N-n+1) = (N*N -n*N+1)/N/(N-n+1)。

 

不过这个结果仅仅作了初步的验证,好像是对的。有空再好好重新推一下,没有把握一定正确。有没有其他人算了结果的,能对照一下就好了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值