HDU 2201 熊猫阿波问题==金刚坐飞机问题
http://acm.hdu.edu.cn/showproblem.php?pid=2201
题目描述
现在有一架飞机要起飞,乘客们正准备按机票号码(1,2,3...,N)一次排队登机。突然来了一只大猩猩(金刚)。他也有机票,但是他插队第一个登上了飞机,然后随意的选择了一个座位坐下了。根据社会的和谐程度,其他的乘客有两种反应:
1.乘客们都义愤填膺,“既然金刚同志都不守规矩,为什么我要遵守?”他们也随意的找位置坐下,并且坚决不让座位给其他乘客。
2.乘客们虽然感到愤怒,但是还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置已经被别人(或者金刚同志)占了,就随机的选择另一个位置坐下,就开始闭目养神,不在挪动。
问题:在这两种情况下,第i个乘客(出去金刚同志外)做到自己原机票位置的概率分别是多少?
问题解答
第一问:该问题相当于排序问题,总的排序总数是n个人的全排列为N!,如果第i个人做到第i个位置上,那么其余n-1个人的全排列为(N-1)!,综上所求概率为(N-1)!/N!=1/N。
第二问:《编程之美》讲得比较复杂,没怎么看懂,在网上找了几个博文对该问题的解答,综合一下,这样理解比较容易:
假设:F(i,n)表示在有n个座位的前提下,第i个人恰好做到第i个座位的概率;
P(K=j)表示金刚刚好坐在位置j上的概率;
P(i|K=j)表示在金刚做到位置j的前提下,第i个人恰好做到第i个位置上的概率。
由以上的假设根据全概率公式有:
由于金刚坐到每一个位置上的概率是相等的,容易知道P(K=j)=1/n;
接下来我们只需要考虑后一项条件概率的值即可。
(1)如果j=1,则表明金刚坐到第一个位置,则i坐到i位置的概率为1;如果j>i,前面的人必然按位置坐,所以概率也为1.所以我们只需要考虑1<j<i的情况,见下。
(2)在1<j<i的情况下,即金刚坐在第j(1<j<i)个位置上,则j个乘客除非坐在金刚的位置上,否则同样要同样要抢占其他人的座位。这和金刚的行为是相似的(因为金刚除非坐在自己的位置上,否则抢占别人的座位),所以我们可以讲第j个乘客当做新的金刚,此时还剩余n-j个座位,同时把剩余乘客的编号也都减去j,则先前的第i个乘客座位号变为i-j,此问题和原问题相似,只是规模更小,所以该种情况下,条件概率为F(i-j,n-j).
所以有如下等式:
然后可以从上面的公式推出递推式:F(i,n)=F(i-1,n-1).(笔者验证了一下,公式是对的,但是不会推导,希望有会的网友指点)。
有上面的递推公式,我们可以到:nF(i,n)=(n-i+1)+(i-2)F(i,n),则问题的最终答案为:
#include<stdio.h> int main() {double n,m;while(scanf("%lf%lf",&n,&m)!=EOF)printf("%.2lf\n",1.0/n);return 0; }
View Code
转自http://www.cnblogs.com/python27/archive/2012/04/08/2438009.html
转载于:https://www.cnblogs.com/huzhenbo113/p/3276654.html
HDU 2201 熊猫阿波问题==金刚坐飞机问题相关推荐
- HDOJ(HDU) 2201 熊猫阿波的故事(概率问题)
Problem Description 凡看过功夫熊猫这部电影的人都会对影片中那只憨憨的熊猫阿波留下相当深的印象,胖胖的熊猫阿波自从打败了凶狠强悍的雪豹泰龙以后,在和平谷的地位是越来越高,成为谷中第一 ...
- HDU 2201 熊猫阿波的故事
Problem Description 凡看过功夫熊猫这部电影的人都会对影片中那只憨憨的熊猫阿波留下相当深的印象,胖胖的熊猫阿波自从打败了凶狠强悍的雪豹泰龙以后,在和平谷的地位是越来越高,成为谷中第一 ...
- HDU -2201 熊猫阿波的故事
熊猫阿波的故事 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Des ...
- 【编程之美】金刚坐飞机问题
题目描述 现在有一架飞机要起飞,乘客们正准备按机票号码(1,2,3...,N)一次排队登机.突然来了一只大猩猩(金刚).他也有机票,但是他插队第一个登上了飞机,然后随意的选择了一个座位坐下了.根据社 ...
- [2201]:熊猫阿波的故事
Problem Description 凡看过功夫熊猫这部电影的人都会对影片中那只憨憨的熊猫阿波留下相当深的印象,胖胖的熊猫阿波自从打败了凶狠强悍的雪豹泰龙以后,在和平谷的地位是越来越高,成为谷中第一 ...
- HDU2201 熊猫阿波的故事【概率】
熊猫阿波的故事 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- 第一次提交杭电OJ——熊猫阿波的故事
这是本人写的第一篇博客,仅此来纪念我的第一次的杭电OJ的提交--熊猫阿波的故事 Problem Description 凡看过功夫熊猫这部电影的人都会对影片中那只憨憨的熊猫阿波留下相当深的印象,胖胖的 ...
- HDU2201 熊猫阿波的故事【水题】【概率】
熊猫阿波的故事 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- 熊猫阿波的故事及C++保留小数点的问题
熊猫阿波的故事 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 熊猫阿波的故事(无顺序抽签问题)
熊猫阿波的故事 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
最新文章
- Android:手把手教你 实现Activity 与 Fragment 相互通信(含Demo)
- Windows核心编程 第九章 线程与内核对象的同步(上)
- 二、前端开发-HTML
- ehviewer苹果版下载_苹果用户:支持ios的云手机有没有?在哪里下载云手机ios版?...
- ANSYS——对称模型对称边界的确定以及对称边界的约束施加问题
- 使用隐含参数testMappingSpeed排查GoldenGate抽取慢的步骤
- js 异步执行_JS Asynchronous — JS 异步编程极简史
- 条件独立的理解及举例
- Delphi 与 DirectX 之 DelphiX(49): TDIB.DoGrayScale;
- C++并发与多线程(二) 创建多个线程、数据共享问题分析、案例代码
- java中连接字符串_Java中几种方式连接字符串的方法
- C#连接Oracle数据库
- 我们计划招收300名深度学习者,免费攻读傅里叶变换和MATLAB
- 磁盘分区 如何分出整数
- 【ML】从特征分解,奇异值分解到主成分分析
- zynq-7000系列基于zynq-zed的vivado初步设计之使用jtag-uart(MDM)
- 淘宝在线客服为什么回复那么慢
- 实例:泰坦尼克号幸存者的预测
- 【汇编语言实验一】用机器指令和汇编指令编程(1)
- samba服务器的位置文件是,从windows通过samba服务器访问文件问题