Case 1: 1/1
Case 2: inf
Case 3: 18/1
貌似是第一道关于期望和概率的题,唉、弱
分析:设出去的时间期望等于\(E\),出去分为两种情况:
A. 一次就出去了,则\(P1=n1/n\),\(n1\)表示正数的个数,平均时间\(T1=SUM(ai)/n1\),\(ai\)为正数;
B. 第一次没出去,则\(P2=n2/n\),\(n2\)表示负数的个数,平均时间为回到起点的平均时间+
从起点出去的平均时间,前者\(T2=SUM(ai)/n2\),\(ai\)为负数,后者即为\(E\);
综上:\(E=P1*T1+P2*(T2+E)\)
解得:\(E=(P1*T1+P2*T2)/(1-P2)\)
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdio>
using namespace std;
#define N 110
int main()
{
int T,iCase=1;
int n,n1,n2;
int sum1,sum2;
scanf("%d",&T);
while(T--)
{
n1=n2=0;
sum1=sum2=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int x;
scanf("%d",&x);
if(x>0)
{
n1++;
sum1+=x;
}
else
{
n2++;
sum2-=x;
}
}
int k1=sum1+sum2;
int k2=n-n2;
int k=__gcd(k1,k2);
printf("Case %d: ",iCase++);
if(k2==0)
printf("inf\n");
else
printf("%d/%d\n",k1/k,k2/k);
}
return 0;
}