light oj 1027 A Dangerous Maze

  一道数学期望题,唉唉,概率论学的不好啊~~

  求走出迷宫的期望时间。

  由于有的门会回到起点,所以有可能会走很多遍,设能走出去的门的个数为n1,总的个数为n,那么一次走出去的概率为n1/n,走一次的用的平均时间是sum(t)/n,期望的次数为n/n1。

  时间期望是:(sum(t)/n)*(n/n1)=sum(t)/n1。

#include<stdio.h>

int gcd(int a,int b){return b?gcd(b,a%b):a;}
int main()
{
    int T,cas=1;;
    int n,n1,sum,a;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        n1=n;
        sum=0;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a);
            if(a>0)
                sum+=a;
            else
                sum-=a,n1--;
        }
        if(!n1)
            printf("Case %d: inf
",cas++);
        else
        {
            int tmp=gcd(sum,n1);
            sum/=tmp;
            n1/=tmp;
            printf("Case %d: %d/%d
",cas++,sum,n1);
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/yongren1zu/p/3248267.html