【ACM】Play the Dice-数学概率

一年多没做题了,今天做了个现参赛的水题,第一感觉题目苦涩,没读懂

,然后坚持读了几遍,懂了边思考啊,就有了成果。

可写的有两点吧:

1:推导,期望值ans 的组成:第一次的均值+待定均值

     即ans =(a1+...an)/n+ans*m/n

     最后结果:ans =(a1+..an)/(n-m);

     由公式也可以看出 n!=m 由题意也可n==m时 是inf

2:精确度问题,以前老犯这错误,都是模模糊糊滴过了,这次尤其注意了一下

     在判断 sum ==0 时 ,用 int 定义 sum 判断 ,AC ,用 double  判断 意料之中的

     最熟悉 的  wrong anser ...

    楼主也不小白式的讲解了,提供两个连接供大家学习一个是微软的官方资料

    一个是脚步之家的博客

   http://technet.microsoft.com/zh-cn/library/system.double


  http://www.jb51.net/article/36935.htm


最后贴个小白代码勿喷~哈:

#include <stdio.h>
int main()
{
    int n,m;
    double ans;
    while(scanf("%d",&n)==1)
    {
        int sum=0;
        for(int i=0;i<n;i++)
        {
            int temp;
            scanf("%d",&temp);
            sum+=temp;
        }
        scanf("%d",&m);
        for(int i=0;i<m;i++)
        {
            int temp;
            scanf("%d",&temp);
        }
        if(sum==0)
        {
            printf("0.00\n");continue;
        }
        if(n==m)
        {
            printf("inf\n");continue;
        }
        ans=(double)sum/(n-m);
        printf("%.2lf\n",ans);
    }
    return 0;
}


记录几个没仔细看的网址:

http://book.51cto.com/art/201204/326994.htm

blog.csdn.net/xiaozzhao/article/details/7450042

http://blog.csdn.net/sgnaw/article/details/12442

你可能感兴趣的:(【ACM】Play the Dice-数学概率)