← Все вопросы

теорема пифагора на питоне — как найти гипотенузу и расстояние между двумя точками

Задан 3 месяца назад685 просмотров2 ответа
6

На геометрии проходим теорему Пифагора, учитель сказал попробовать посчитать на питоне. Надо найти гипотенузу прямоугольного треугольника с катетами 3 и 4, и ещё расстояние между точками A(1, 2) и B(4, 6). С гипотенузой попробовал так, но не уверен:

a = 3
b = 4
c = a**2 + b**2
print(c)  # выдаёт 25, а должно быть 5?

Почему 25 а не 5? И как со второй частью про точки?

2 ответа

10
✓ Принятый ответ — помог автору

Ты почти у цели! 25 получилось потому что ты посчитал a² + b², но забыл взять из этого квадратный корень. По теореме Пифагора c² = a² + b², а сама гипотенуза c = √(a² + b²).

import math

a, b = 3, 4
c = math.sqrt(a**2 + b**2)
print(c)  # 5.0

Теперь про расстояние между точками — это та же теорема Пифагора, просто хитро применённая. Если у тебя точки A(x1, y1) и B(x2, y2), то отрезок AB — это гипотенуза треугольника, а катеты — разница по x и разница по y:

import math

x1, y1 = 1, 2
x2, y2 = 4, 6
rasst = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
print(rasst)  # 5.0

Формула расстояния √((x2−x1)² + (y2−y1)²) — это и есть Пифагор: (x2−x1) это один катет, (y2−y1) второй, а расстояние между точками — гипотенуза.

Кстати, в Python есть готовая math.hypot, которая сразу считает гипотенузу:

print(math.hypot(3, 4))                # 5.0
print(math.hypot(x2 - x1, y2 - y1))    # 5.0
4

Маленькая ремарка про возведение в степень: в питоне это **, а не ^. Знак ^ тоже работает, но это совсем другая операция (побитовый XOR), и результат будет неожиданный. Так что только a**2.

print(3**2)  # 9 — правильно
print(3^2)   # 1 — НЕ степень, это другое!

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект