Автор | Сообщение |
|
Отправлено: 09.11.21 21:11. Заголовок: Задача 9-116. Богданов
Проверял двумя способами ответ и всегда разный. По теореме косинусов если проверять, то ответ 1720. Это верно. Вот код. F = open("9-114.txt") k = 0 for s in F: a, b, c = map(int,s.split()) Cos1 = (b**2 + c**2 - a**2)/(2*b*c) Cos2 = (a**2 + c**2 - b**2)/(2*a*c) Cos3 = (a**2 + b**2 - c**2)/(2*a*b) if a<b+c and b<a+c and c<a+b: if (Cos1 < 0 and Cos2 >0 and Cos3 > 0)or\ (Cos1 > 0 and Cos2 >0 and Cos3 < 0)or \ (Cos1 > 0 and Cos2 < 0 and Cos3 > 0): k +=1 print(k) Но для упрощения кода нашел в литературе Свойство тупоугольного треугольника: Любая сторона тупоугольного треугольника меньше суммы двух других сторон и больше их разности: a < b + c; a > b – c; b < a + c, b > a – c; c < a + b; c > a – b. Написал код: F = open("9-114.txt") k = 0 for s in F: a, b, c = map(int,s.split()) if a<b+c and b<a+c and c<a+b: if (a > b - c) and\ (b > a - c) and\ (c > a - b): k +=1 print(k) Ответ выдает неверный. В чем ошибка во втором коде?
|
|
|
Ответов - 1
[только новые]
|
|
|
Отправлено: 09.11.21 22:00. Заголовок: Берём a*a+b*b = c*c ..
Берём a*a+b*b = c*c . Помним, что гипотенуза всегда длиннее катетов (max) а что если это неравенство? a*a+b*b > c*c , т.е. сторона c меньше гипотенузы и стягивает "катеты" а и b, делая угол острым a*a+b*b < c*c , т.е. сторона c меньше гипотенузы и расталкивает "катеты" а и b, делая угол тупым ну и можно доказать, для тренировки профильной математики (кстати, через теорему косинусов) https://youtu.be/By5Qc8JhQpY?t=46
|
|
|