尝试将三角形补成一个长方形,然后利用轮换对称去推导性质,然后失败了.

大佬博客说是正攻,直接按照角度算二重积分就可以了.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from math import acos, pi
from scipy.integrate import dblquad

x0=30
y0=40

# 答案 精度
ans,err=dblquad(
lambda y,x:acos((x*x+y*y-x*x0-y*y0)/((x0-x)**2+y**2)**0.5/((y0-y)**2+x**2)**0.5)/(2*pi),
# y的上下限
0,x0,
# x的上下限
0,lambda x:y0-y0/x0*x)
# 最先被积分的写在下面
ans/=x0*y0/2
print(ans)