题意:
Duha 是 (1) 号乘客,且只有他丢失了他的机票,其他乘客没有。
在去的时候,他是第一个上飞机的,而且他随机选择一个座位,后面的乘客如果发现座位被占,也会随机选择一个座位。求最后一个乘客坐在自己位置上的概率。
回来的时候,上飞机的顺序是随意的,问最后一个乘客坐在自己位置上的概率。
数据范围:(1leq n,m leq 50)
分析:
第一问:
(n=1:p[1]=1;)
(n=2:p[2]=frac{1}{2}+0=frac{1}{2};)
(n=3:frac{1}{3}+frac{1}{3}*p[2]+frac{1}{3}*0=frac{1}{2};)
(n=4:frac{1}{4}+frac{1}{4}*p[2]+frac{1}{4}*p[3]+frac{1}{4}*0=frac{1}{2};)
(p[n]=frac{1}{n}+frac{1}{n}*p[2]+frac{1}{n}*p[3]+...+frac{1}{n}*p[n-1]+frac{1}{n}*0=frac{n}{2n}=frac{1}{2};)
第二问:
在第一问的基础上进行推导;
(p=frac{1}{m}*(1+frac{1}{2}*(m-1))=frac{m+1}{2m})
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t,n,m,cot=0;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
double ans1=0.5,ans2=1.0*(m+1)/(2*m);
if(n==1)
ans1=1;
printf("Case #%d: ",++cot);
printf("%.6f %.6f
",ans1,ans2);
}
return 0;
}