uva 11346 - Probability(概率)

时间:2023-03-09 21:40:42
uva 11346 - Probability(概率)

option=com_onlinejudge&Itemid=8&page=show_problem&problem=2321">题目链接:uva 11346 - Probability

题目大意:给定x。y的范围。以及s。问说在该范围内选取一点。和x,y轴形成图形的面积大于s的概率。

解题思路:首先达到方程xy ≥ s,即y = s / x。

uva 11346 - Probability(概率)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2VzaHVhaTE5OTQwNzIy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

S2的面积用积分计算,y = s / x的原函数为lnx
所以S2=s∗(ln(a)−ln(x))

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm> using namespace std; int main () {
int cas;
double a, b, s;
scanf("%d", &cas); while (cas--) {
scanf("%lf%lf%lf", &a, &b, &s);
double r = min(s / b, a);
double ans = r * b + log(a) * s; if (fabs(s) > 1e-9)
ans = ans - log(r) * s; double p = 1 - ans / (a * b);
printf("%.6lf%c\n", fabs(p * 100), '%');
}
return 0;
}