编程之美4.1 金刚坐飞机问题

问题描述:有一班飞机将要起飞,乘客们正准备按机票号码依次排队登记。突然来了一只大猩猩。他也有飞机票,但是他插队第一个登上了飞机,然后随意地挑了一个座位坐下了。其他乘客的反应如下

1) 乘客们都很生气,他们也随意找位置坐下,并坚决不让座给其他乘客

2) 乘客们虽然很愤怒,但还是以“和谐”为重,如果自己的座位没被别人坐了,就赶紧坐下;如果自己的座位被坐了,则随机挑选一个位子坐下

求第i个乘客坐到自己原机票位置的概率


1) 第i个乘客分两种情况

1:座位被别人坐了,则坐回自己位置概率为0

2:座位没被别人坐,则坐回自己位置概率为1/N-i+1;而座位没被别人坐的概率为(N-1)...(N-n+1)/N(N-1)...(N-n+2)

从而坐回原机票位置的概率为两者相乘,得到1/N


2) 将问题转化为如果金刚坐在第n个位置上,那么第i个乘客坐回自己位置的概率是多少,设为f(n)

1:n=1或n>i,则第i个乘客坐回自己的位置概率为1,因为从2到i-1个乘客都可以坐回自己的位置

2:n=i,则第i个乘客坐回自己的位置概率为0

3:1<n<i,可继续分解问题,第2到n-1个乘客都可以坐回自己的位置,但第n个乘客位置被金刚坐了,只能随机选择其他位置j

1) 若j为金刚的位置,则第i个乘客可以坐回自己的位置

2) 若n<j<=N,则相当于金刚坐了第j个位置;从而利用全概率公式




两式相减可得f(n)=f(n+1),又当n>i时,f(n)=1,当n=i时,f(n)=0;代入n=2,可得f(n)=N-i+1/N-i+2,从而



就是第i个乘客坐回自己位置的概率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值