時針と分針の長さがそれぞれ、A,Bcmであるアナログ時計がH時M分になったとき、2本の針の端点は何cm離れているか求める問題です。
提出
import math
a, b, h, m = map(int, input().split())
mr = 6*m
hr = 360*(h/12+m/720)
r = math.radians(abs(mr-hr))
ans = math.sqrt((a**2)+(b**2)-2*a*b*math.cos(r))
print(ans)
時針の長さをa、分針をb、答えをcと置くと、今回の問題は辺a,b,cを持つ三角形のc辺の長さを求める問題と同じです。
数学の余弦定理を用いると、
c2 = a2+b2-2abcosθ
となるため、θの部分を求めれば、解くことができます。
まず、分針と時針をそれぞれ、頂点の12からの角度を求め、mr,hrに代入します。
時針は分針の位置も考えて計算する必要があります。
続いて、mathモジュールを用いてcosを計算するのですが、このモジュールでは、三角関数の角度の単位としてラジアンを用いるため、事前にmath.radians()で、度をラジアンに変換しておきます。
あとは、先ほどの余弦定理で計算して、結果を出力します。