现在的位置: 首页 > 综合 > 正文

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

2019年01月04日 ⁄ 综合 ⁄ 共 658字 ⁄ 字号 评论关闭

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

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个乘客坐回自己位置的概率

抱歉!评论已关闭.