トップページ -> AOJの解答例 -> ITP1_10の解答例

ITP1_10の解答例(Python)

唐突に数学の問題です.

ITP1_10_A: Distance

与えられた2つの点の距離を求める問題です. 入力が実数の範囲で行われるのでintではなく,floatで入力を受けます.

# ITP1_10_A
x1,y1,x2,y2 = map(float,input().split(" "))
dist = ((x1-x2)**2 + (y1-y2)**2)**(0.5)
print(dist)

ITP1_10_B: Triangle

三角形の面積 周 aを底辺とした高さを求める問題です. 三角関数はmath.sin math.cos math.tan で呼び出せます. 正弦定理 余弦定理を忘れた方はネットで検索すると色々出てくると思います.

# ITP1_10_B
import math
a,b,C = map(int,input().split(" "))
C = math.radians(C)
# 正弦定理で面積を求める
S = 0.5*a*b*math.sin(C)
# 余弦定理で残り1辺を求める
c = (a**2 + b**2 - 2*a*b*math.cos(C))**0.5
L = a+b+c
# ah/2=S ⇒ h=2S/a
h = 2*S/a
print(S,L,h)

ITP1_10_C: Standard Deviation

標準偏差を求める問題です.

# ITP1_10_C
while True:
    n = int(input())
    # 終了条件
    if n==0:
        break
    score_list = list(map(int,input().split(" ")))
    mean = sum(score_list)/n
    V = 0
    for s in score_list:
        V += (s-mean)**2

    V = V/n
    sd = (V)**0.5
    print(sd)

ITP1_10_D: Distance II

4種類の距離を求めます. 4通りなので雑にそのまま書いてしまっています.

# ITP1_10_D
n = int(input())
X = list(map(int,input().split(" ")))
Y = list(map(int,input().split(" ")))

dist1 = 0
dist2 = 0
dist3 = 0
dist4 = 0
for i in range(n):
    dist1 += abs(X[i]-Y[i])
    dist2 += (X[i]-Y[i])**2
    dist3 += abs(X[i]-Y[i])**3
    dist4 = max(dist4,abs(X[i]-Y[i]))
    
dist2 = dist2**(1/2)
dist3 = dist3**(1/3)

print(dist1)
print(dist2)
print(dist3)
print(dist4)

<- 前へ戻る 【目次に戻る】 次へ進む ->