К содержанию

Подтема 7 из 7 · дополнительный урок

Тройка как стороны треугольника

Когда три числа могут быть сторонами треугольника и как узнать, прямоугольный он, остроугольный или тупоугольный.

Дополнительный урок

Дополнительный урок — для продвинутых. Изредка в задании 17 спрашивают тройки, которые могут быть сторонами треугольника. Задачи основных подтем решаются без него.

Например: «определите количество троек, которые могут быть сторонами прямоугольного треугольника, затем максимальную из сумм элементов таких троек». Перебор троек и ответ — те же, что в задаче темы, меняется только проверка. Её разберём на тройках 3, 4, 5; 2, 3, 4 и 1, 2, 3 — стороны, которые легко нарисовать.

Существование

Из любых ли трёх чисел можно сложить треугольник?

Нет. Упорядочим стороны: p ≤ q ≤ r. Треугольник есть, только если две меньшие стороны вместе длиннее большей: p + q > r. Положим две меньшие стороны вдоль большей:

Отрезки 1 и 2 вместе ровно равны 3 — их можно только уложить на одну прямую. Отрезки 2 и 3 вместе длиннее 4 — их концы можно поднять и свести в вершину треугольника.

Остальные две проверки — p + r > q и q + r > p — после сортировки выполняются сами: к стороне прибавляют самую длинную, и сумма заведомо больше. Поэтому тройку сначала сортируют, а потом проверяют одно неравенство.

Вид треугольника

Как узнать, прямоугольный треугольник, остроугольный или тупоугольный?

Сравни сумму квадратов двух меньших сторон с квадратом большей. Равенство — это теорема Пифагора, прямой угол. Если сумма больше, все углы острые, если меньше — угол напротив большей стороны тупой:

прямоугольный
p² + q² = r²3, 4, 5: 9 + 16 = 25
остроугольный
p² + q² > r²4, 5, 6: 16 + 25 = 41 > 36
тупоугольный
p² + q² < r²2, 3, 4: 4 + 9 = 13 < 16
Обоснование · необязательноПочему острый и тупой угол различает квадрат большей стороны

Представь, что две меньшие стороны закреплены, а угол между ними раскрывается. Чем шире угол, тем длиннее третья сторона. При прямом угле её квадрат ровно равен p² + q², при остром угле сторона короче, при тупом — длиннее.

Проверим все случаи программой — сначала существование, потом вид:

for t in [[3, 4, 5], [4, 5, 6], [2, 3, 4], [1, 2, 3]]:    p, q, r = sorted(t)    if not (p > 0 and p + q > r):        print(t, "треугольника нет")    elif p ** 2 + q ** 2 == r ** 2:        print(t, "прямоугольный")    elif p ** 2 + q ** 2 > r ** 2:        print(t, "остроугольный")    else:        print(t, "тупоугольный")
[3, 4, 5] прямоугольный [4, 5, 6] остроугольный [2, 3, 4] тупоугольный [1, 2, 3] треугольника нет

Прямоугольный

Зачем проверять существование, если равенство Пифагора уже выполнено?

Равенство выполняется и у троек, из которых треугольник не сложить. Например, 0, 5, 5: 0² + 5² = 5², но стороны длины ноль не бывает. Такую тройку отсекает неравенство: 0 + 5 = 5, а не больше. Пусть по условию, если подходящих троек нет, нужно вывести 0 0:

a = [5, 12, 13, 0, 5, 5]sums = []for i in range(len(a) - 2):    p, q, r = sorted([a[i], a[i + 1], a[i + 2]])    is_triangle = p > 0 and p + q > r    is_right = p ** 2 + q ** 2 == r ** 2    if is_triangle and is_right:        sums.append(p + q + r)if len(sums) == 0:    print(0, 0)else:    print(len(sums), max(sums))
1 30

Подходит только 5, 12, 13. У последней тройки 0, 5, 5 равенство выполнено, но is_triangle ложно — без этой проверки программа вывела бы 2 30.

Итого

  • Сортировкаp, q, r = sorted(t): p ≤ q ≤ r
  • Существованиеp + q > r — две другие проверки выполняются сами
  • Прямоугольныйp² + q² = r²
  • Остроугольныйp² + q² > r²
  • Тупоугольныйp² + q² < r²
  • 0, 5, 5равенство Пифагора без проверки существования ошибается

Проверьте себя

Ответь сначала сам, потом открой ответ.

Вопрос 1
Образуют ли треугольник тройки 5, 5, 10 и 2, 2, 3? Если да, то какой?
ОтветСкрыть ответ
Ответ
5, 5, 10 — нет: 5 + 5 = 10. 2, 2, 3 — да, тупоугольный: 2 + 2 > 3, но 4 + 4 = 8 < 9.
Вопрос 2
Определи вид треугольника: 6, 8, 10; 5, 6, 7; 4, 6, 9.
ОтветСкрыть ответ
Ответ
Прямоугольный (36 + 64 = 100), остроугольный (25 + 36 = 61 > 49), тупоугольный (4 + 6 > 9, но 16 + 36 = 52 < 81).
Вопрос 3
Какое условие существования не выполнено для тройки 0, 3, 3?
ОтветСкрыть ответ
Ответ
p + q > r: 0 + 3 = 3. Сторона длины ноль тоже недопустима.
Вопрос 4
Объясни, почему для 7, 2, 4 достаточно проверить одно неравенство после сортировки. Образуют ли эти числа треугольник?
ОтветСкрыть ответ
Ответ
После сортировки 2, 4, 7: если две меньшие стороны вместе не длиннее большей, треугольника нет, а остальные неравенства выполнены всегда. Здесь 2 + 4 = 6 < 7 — треугольника нет.

Практика

Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.

Тупоугольные тройки

Последовательность 10, 6, 8, 3, 4, 5, 13. Найди количество соседних троек, которые могут быть сторонами тупоугольного треугольника, и максимальную сумму их элементов.

Введите через пробел количество троек, затем максимальную сумму.

Остроугольные тройки файла

В файле 17-5.txt содержится последовательность натуральных чисел. Определите количество троек, которые могут являться сторонами остроугольного треугольника, затем максимальную из сумм элементов таких троек. Если таких троек не найдётся, выведите 0 0. Под тройкой подразумевается три идущих подряд элемента.

17-5.txtПоследовательность натуральных чиселТекстовый файл · 1,6 КБ

Введите через пробел количество троек, затем максимальную сумму.

Прямоугольные тройки

Последовательность 3, 4, 5, 6, 8, 10. Найди количество соседних троек, которые могут быть сторонами прямоугольного треугольника, и максимальную сумму их элементов.

Введите через пробел количество троек, затем максимальную сумму.

Прямоугольные тройки файла

Для файла 17-5.txt определите количество троек, которые могут являться сторонами прямоугольного треугольника, затем максимальную из сумм элементов таких троек. Если таких троек не найдётся, выведите 0 0.

17-5.txtПоследовательность натуральных чиселТекстовый файл · 1,6 КБ

Введите через пробел количество троек, затем максимальную сумму.