Take Your Seat Gym

题意:

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;
}

原文地址:https://www.cnblogs.com/1024-xzx/p/12422100.html