第一次写期望的题目,感觉自己zz了好久,想不出来突破口,最后还是想通了
题意:
给n个门,和对应的x[i],开每个门的概率相同,整数代表进入这扇门,x[i]后出迷宫,负数代表进入这扇门,-x[i]后回到原位。给出离开迷宫的数学期望。
思路:
没怎么写过概率题,想了好久才明白
设pa概率出去,pb概率回到原位,ta为出去的平均时间,tb为回来的平均时间
现在面对着门, 我此时出去的数学期望是E
pa * ta 时间出去
pb * tb 回到原位,又将面对门,而此时出去的数学期望又是E
显然 E=pa*ta +pb*( tb + E );
E=(pa*ta+pb*tb)/(1-pb)
E=(pa*ta+pb*tb) / pa
#include<stdio.h>
#include<math.h>
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int main()
{
int t;
int a,c,n;
int sum=0;
int k=1;
scanf("%d",&t);
while(t--)
{
sum=0;
a=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&c);
if(c>0) sum+=c;
else sum-=c;
if(c>0) a++;
}
if(a==0) printf("Case %d: inf\n",k++);
else{
int b=gcd(a,sum);
sum/=b;
a/=b;
printf("Case %d: %d/%d\n",k++,sum,a);
}
}
return 0;
}