По заданным координатам вершин треугольника вычислить длины его медиан
Есть код, но он не проходит такой тест:
- x1=3
- y1=0
- x2=0
- y2=4
- x3=0
- y3=0
- m1= 3.605551275463989 (должно быть 4.27)
- m2= 4.0 (должно 2.5)
- m3= 4.272001872658765 (только это верно)
Вроде нужно В функцию med передать не четыре переменных, а шесть. Добавить x3, y3. В вызова функции тоже должно быть шесть переменных. Но сделать толково не получается
def med(x1,y1,x2,y2):
import math
med=math.sqrt((x1-(x2+x3)/2)**2+(y1-(y2+y3)/2)**2)
return med
x1=float(int(input("x1=" )))
y1=float(int(input("y1=" )))
x2=float(int(input("x2=" )))
y2=float(int(input("y2=" )))
x3=float(int(input("x3=" )))
y3=float(int(input("y3=" )))
print("m1=",med(x1, y1, x2, y2))
print("m2=",med(x2, y2, x3, y3))
print("m3=",med(x2, y2, x1, y1))
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
А в чем проблема то?
В Википедии даётся формула
дальше ее всего лишь надо реализовать:
def med(p1, p2, p3):
a = (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2
b = (p3[0] - p2[0])**2 + (p3[1] - p2[1])**2
c = (p3[0] - p1[0])**2 + (p3[1] - p1[1])**2
return math.sqrt(2*a + 2*b - c) / 2
и вызывать
med((x1, y1), (x2, y2), (x3, y3))
по хорошему предварительно надо проверить, что точки вообще образуют треугольник, но это вопрос уже из другой серии
