题目大意
有一直角三角形 △ABC,其中 B 是直角边。在 AB 上找一点 P,连接 CP,又在 AC 上找一点 Q 后连接 PQ,使得 ∠APQ=∠BPC。若已知线段 AB 的长度为 X,线段 BC 的长度为 Y,线段 AQ 的长度为 Z,请求出线段 AP 的长度是多少?
思路
好吧,一道数学几何题。
我们作 Q 关于 AB 的对称点 Q′,作 Q⊥AB 于 D,Q⊥BC 于 F,Q′⊥CB 的延长线于 E。
根据勾股定理,有 AC=X2+Y2。
因为 ∠ADQ=∠ABC=90°,∠DAQ=∠BAC,所以有 △ADQ∼△ABC。由此可以推出:
BCDQ=ACAQ=X2+Y2Z
得到 DQ=X2+Y2YZ。
因为 Q′ 是 Q 关于 AB 的对称点,所以易得 Q′,P,C 三点共线。
故 EB=DQ′=DQ。
根据 △QFC∼△ABC,有:
ABQF=X2+Y2X2+Y2−Z
故 QE′=QF=X2+Y2+ZXX2+Y2−XZ
再根据 △QFC∼△ABC,有:
Q′EPB=CEBC=Y+X2+Y2ZYY=X2+Y2+ZX2+Y2
所以 PB=X2+Y2+ZXX2+Y2−XZ,最后得到:
AP=AB−BP=X2+Y2+Z2XZ
AC 代码
1 2 3
| from math import sqrt x,y,z = map(float,input().split(" ")) print( (2.0*x*z)/(sqrt(x*x+y*y)+z) )
|