码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 11346 - Probability 数学积分

时间:2016-01-14 23:43:44      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

Consider rectangular coordinate system and point L(X, Y ) which is randomly chosen among all points
in the area A which is de?ned in the following manner: A = {(x, y)|x ∈ [−a; a];y ∈ [−b; b]}. What is
the probability P that the area of a rectangle that is de?ned by points (0,0) and (X, Y ) will be greater
than S?
Input
The number of tests N ≤ 200 is given on the ?rst line of input. Then N lines with one test case on
each line follow. The test consists of 3 real numbers a > 0, b > 0 ir S ≥ 0.
Output
For each test case you should output one number P and percentage ‘%’ symbol following that number
on a single line. P must be rounded to 6 digits after decimal point.
Sample Input
3
10 5 20
1 1 1
2 2 0
Sample Output
23.348371%
0.000000%
100.000000%

 

题解:给你x,y,s,问说在x,y与x,y轴形成的矩形内选取一点,和x,y轴形成图形的面积大于s的概率。

题解: 

       画个图是求个积分

      S = s* (ln(x1)- ln(x));

技术分享
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <vector>
#include <bitset>
using namespace std ;
typedef long long ll;

const int N = 3000 + 5;


int main () {
    int T;
    scanf("%d",&T);
    while(T--) {
            double x,y,s;
        scanf("%lf%lf%lf",&x,&y,&s);
        double x1 = min(x,s / y);
        double S = 0;
        if(s > 1e-9) S = x1 * y + s * (log(x) - log(x1));
        //cout<<S<<endl;
        double p = 1.0 - S / (x * y);
        p *= 100;
        printf("%.6f%%\n", p);
    }
    return 0;
}
daima

 

UVA 11346 - Probability 数学积分

标签:

原文地址:http://www.cnblogs.com/zxhl/p/5131949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!