四点共半圆
最近有个问题火了起来:$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);
}

                
            
        
浙公网安备 33010602011771号