四点共半圆
最近有个问题火了起来:$4$只小鸭子随机落在圆形池塘内,它们落在的同一个半圆内的概率是多少?
严格证明要用到积分,我好废物根本想不到,所以写了个$.cpp$验证下,答案是$0.5$,哥哥们可以证明试试。
#include <bits/stdc++.h> #define DBG(x) cerr << #x << " = " << x << endl using namespace std; typedef long long ll; int deg() { int ret = rand() ^ 114514 ^ 991; return (int)(ret % 360 + 360) % 360; } bool in(int l, int r, int x) { return (l <= x && x <= r); } bool ck(int d1, int d2, int d3, int d4) { int l, r, x = d1, y = (d1 + 180) % 360; l = min(x, y); r = max(x, y); if (in(l, r, d2) && in(l, r, d3) && in(l, r, d4)) return true; if (!in(l, r, d2) && !in(l, r, d3) && !in(l, r, d4)) return true; return false; } bool solve() { int d1 = deg(), d2 = deg(), d3 = deg(), d4 = deg(); if (ck(d1, d2, d3, d4) || ck(d2, d1, d3, d4) || ck(d3, d1, d2, d4) || ck(d4, d1, d2, d3)) return true; return false; } int main() { srand(time(NULL)); int n = 1000000, tot = 0; for (int i = 1; i <= n; i++) { tot += (int)solve(); } printf("%.10f\n", (double)tot / (double)n); }