在矩形區域 x ∈ [-a, a], y ∈ [-b, b] 中均勻隨機取點 (X,Y)。求由原點和 (X,Y) 為對角頂點的矩形面積 |X·Y| 超過 S 的概率。輸出百分比保留 6 位小數。
面積條件 |X·Y| > S。利用對稱性,只考慮第一象限 x>0, y>0,面積為 xy > S。總面積 4ab,第一象限面積 ab。
曲線 y = S/x 在 x ∈ [S/b, a] 內(因 y≤b ⇒ x≥S/b)。第一象限滿足條件面積:
∫_{S/b}^{a} (b - S/x) dx = b(a - S/b) - S(ln a - ln(S/b))
= ab - S - S ln(ab/S)
四個象限總滿足面積 = 4 × (ab - S - S ln(ab/S))。
概率 = 滿足面積 / 總面積 = 1 - (S + S ln(ab/S)) / (ab)。
ab ≤ S:最大面積不超過 S,概率 0。S = 0:概率 1(100%)。#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T; cin >> T;
while (T--) {
double a, b, S; cin >> a >> b >> S;
if (a*b <= S) { cout << "0.000000%\n"; continue; }
if (S == 0) { cout << "100.000000%\n"; continue; }
double prob = 1.0 - (S + S * log(a*b/S)) / (a*b);
cout << fixed << setprecision(6) << prob*100 << "%\n";
}
return 0;
}
∫ b - S/x dx = bx - S ln x。log(a*b/S) = log a + log b - log S,避免中間溢出(double 通常足夠)。% 符號,setprecision(6)。本題是連續型幾何概率的標準練習:利用對稱性降維、定積分計算曲線下面積、邊界條件特判,代碼極其簡潔。