TCTF - Elements

2019-03-31  本文已影响0人  喝豆腐脑加糖

数学忘完了是真的难受

图片.png 图片.png v23中保存着另外一边

大概跟一下程序,能看出是三角形的判断。下方的公式可以得到一个方程,其中 " 0x391BC2164F0ALL " 应当是最短的一边,两个浮点数为内外切圆的半径。

想办法计算出另外两边

== 数学题就用数学的格式来写

解:

图片.png

已知:
a1=62791383142154LL
内切圆半径r = 1.940035480806554e13
外切园半径R = 4.777053952827391e13

设三角形的面积为S ,第三边为a3,另外一条为a2

求:另外两边

因为:


图片.png

s = sqrt(4.0 * a1_2 * a1_2 * a2_1 * a2_1 - p1 * p1) * 0.25

得:
p1 = 2S/(a1+a2+a3)
p3 = a1a2a3/(4S)
所以:
r=2S/(a1+a2+a3) = 1.940035480806554e13
R=a1
a2* a3/(4*S) = 4.777053952827391e13

由正弦定理得 :
sin A = a/(2R)
又因为:
cos A = (b ^ 2+c ^2-a ^ 2)/(2bc)= sqrt(1-(sin A)^2)

联立得:

S = a1*a2*a3/4R = (a1 + a2 + a3)r/2
a1*a2*a3 = 2Rr(a1+a2+a3)=2Rr(a+p2)

所以:(随便联立列出方程,脚本删完不想写了)

from math import sqrt 

r = 1.940035480806554e13
R = 4.777053952827391e13
a1 = 62791383142154
sin= a / (2 * R)
cos = 1 - sin**2
cos = sqrt(cos)
b+c = a+4*R*r*(1+cosA)/a
bc = 2*R*r*(a+T2)/a #bc
 c-b= sqrt(T2*T2-4*T3)

a2 = int((bc+b+c)/2)
a3 = int((b+c-bc)/2)
print hex(c),' ',hex(b)

flag{391bc2164f0a-4064e4798769-56e0de138176}

上一篇 下一篇

猜你喜欢

热点阅读