D. Take Your Seat (概率)
题目链接:https://nanti.jisuanke.com/t/41288
题意:
第一问:有n个乘客坐飞机,每个人都有一张票, 现在第一个上机的人把票弄丢了, 他就随便找了一个座位坐下来,如果后面的乘客发现自己的座位被别人坐了,就会在剩下空的座位随便挑一个坐。 问最后一个人正确坐到自己坐位的概率是多少?
第二问:有m个乘客坐飞机, 也是有一个人把票弄丢了,但是这里把票弄丢的人不一定第一个上飞机,他什么时候上飞机是等概论的。问最后一个人正确坐到自己坐位的概率是多少?
比较经典的一个概率题,叫疯子坐飞机问题, 推荐阅读:https://www.zhihu.com/question/35950050/answer/65272204
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
int T;
scanf("%d",&T);
for(int u=1; u<=T; u++)
{
cin >> n >> m;
double ans1 = 0.5;
double ans2 = (1.0*(m-1)/m)*0.5 + 1.0/m;
if ( n==1 ) {
ans1 = 1;
}
printf("Case #%d: ",u);
printf("%.6f %.6f\n",ans1,ans2);
}
return 0;
}