• UVa 11346 Probability (转化+积分+概率)


    题意:给定a,b,s,在[-a, a]*[-b, b]区域内任取一点p,求以原点(0,0)和p为对角线的长方形面积大于s的概率。

    析:应该明白,这个和高中数学的东西差不多,基本就是一个求概率的题,只不过更简单了,不用你算了,你给出表达式,

    让计算机帮你算即可。

    由对称性知道,只要求[a, b]区域内的概率就OK了,也就是xy > s,由高中的知识也知道应该先求xy = s的曲线,

    然后求在曲线上面的面积,这就用到了积分,由于上面的不好求,我们先求下面的,再用总面积减掉即可(自己画个图看看),

    挺简单的,原函数也特别好求(比高数课本上的舒服多了),然后后面就简单了,不用说了吧。。。

    注意的是,这个题a,b,s都是实数,我以为是整数,WA好几次,还有要注意如果s > ab,概率要为0,要特殊考虑,

    最后注意点误差(虽然我没管也AC了),如果s太小了,可直接返回1,因为基本忽略不记,是特别小的时候。

    代码如下:

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    
    using namespace std;
    const int maxn = 400000 + 10;
    
    int main(){
        int T;  cin >> T;
        double a, b, s; 
        while(T--){
            scanf("%lf %lf %lf", &a, &b, &s);
            if(0 == s){  printf("100.000000%%
    ");  continue; }
            else if(s > a*b){  printf("0.000000%%
    ");  continue; }
            
            double ans = s + s * log(a*b/s);
            if(ans <= 0)  printf("0.000000%%
    ");
            else  printf("%.6lf%%
    ", 100.0 - ans*100.0 / (a*b));
        }
        return 0;
    }
    
  • 相关阅读:
    4.定时器
    LSTM分类层的理解
    对机器学习中end-to-end learning(端到端学习)的理解
    对非极大值限制(NMS)的理解
    ROI pooling
    softmax的理解
    长尾理论(long tail )的理解
    对双线性插值的理解
    RPN的理解
    卷积神经网络(CNN)和Faster-RCNN的理解
  • 原文地址:https://www.cnblogs.com/dwtfukgv/p/5539263.html
Copyright © 2020-2023  润新知