金刚坐飞机问题
来源:互联网 发布:新纪元查账软件 编辑:程序博客网 时间:2024/04/27 15:53
问题描述:
现在有一班飞机要起飞了。乘客们准备按机票号码(1,2,3,...,N)依次登记,突然来了只大猩猩(对,他叫金刚),也有飞机票,但是他插队第一个登上了飞机。然后随意的选了一个座位坐下。
现在乘客们虽然感到愤怒,但还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置被别人(或金刚同志)占了,就随机的选择另一个位置坐下,不再挪动位置。
现在有一班飞机要起飞了。乘客们准备按机票号码(1,2,3,...,N)依次登记,突然来了只大猩猩(对,他叫金刚),也有飞机票,但是他插队第一个登上了飞机。然后随意的选了一个座位坐下。
现在乘客们虽然感到愤怒,但还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置被别人(或金刚同志)占了,就随机的选择另一个位置坐下,不再挪动位置。
这种情况下,第i个乘客(除去金刚同志)坐到自己原机票位置的概率是多少??
下面的图片是书上的解法思路
很多人都卡在这一步了,其实再多写一项就解决了
当 n < i 时
f(n) = 1/(N-n+1)*(1+f(n+1)+f(n+2)+f(n+3)+.....+f(N)),
即(N-n+1)*f(n) = 1+f(n+1)+f(n+2)+f(n+3)+.....+f(N) ------------------等式1
如果(n+1) < i
也有f(n+1) = 1/(N-n)*(1+f(n+2)+f(n+3)+.....+f(N))
即 (N-n)*f(n+1) = 1+f(n+2)+f(n+3)+.....+f(N) ------------------------等式2
等式1和等式2相减,可得到
当 (n+1) < i 时
f(n) = f(n+1)
由此可知,当1<=n<i 时
金刚坐在第n个位置,与金刚坐在第j个位置(n<j<i),对于第i个乘客座在自己座位上的概率丝毫不影响,
故f(n) = f(n+1) = .....= f(i-1)
------------------------------------
求f(i-1)就简单了哦~
金刚坐了第(i-1)个位置,这种情况下,第(i-1)个人只要不坐在第i个位置即可。
则第i个人坐在自己位置的概率为
1-1/(N-i+2) = (N-i+1)/(N-i+2)
很多人又卡在最后一步了:下面是我的详细计算步骤
最后说明一下,
当I=1时,概率为1/N,因为金刚是第一个乘客,他随机选
当I>1时,概率如上面所说的
0 0
- 金刚坐飞机问题
- 金刚坐飞机问题
- 金刚坐飞机问题
- 金刚坐飞机问题
- 金刚坐飞机问题
- 4.1金刚坐飞机问题
- 金刚坐飞机问题
- 金刚坐飞机问题
- 金刚坐飞机问题
- 【编程之美】金刚坐飞机问题
- 【算法与数据结构】金刚坐飞机问题
- 【编程之美】金刚坐飞机问题
- 【编程之美】金刚坐飞机问题
- 编程之美4.1 金刚坐飞机问题
- 编程之美 金刚坐飞机问题
- 编程之美读书笔记_4.1_金刚坐飞机问题
- 读书笔记之编程之美 - 4.1 金刚坐飞机问题
- 编程之美--4.1金刚坐飞机的问题
- 用GDB调试NGINX
- wuzhicms上传弹出层,如何返回数据到当前页面?
- Java开发中的23种设计模式详解
- Java 8种基本类型
- 多元散射校正MSC
- 金刚坐飞机问题
- IOS APP上传到AppStore
- 二维码的生成细节和原理 转载
- Codeforces Round #202 (Div. 2) B. Color the Fence
- 给UILabel 或者 UIButton标题加下划线
- .net发邮件【转】
- C/C++减少IO操作的方法
- JVM理解其实并不难!
- dp总结