Сколько идти до школы?

Вы живёте в точке A = (0, 0), школа — в точке B = (3, 4). Расстояния в условных единицах.

Задача: чему равно расстояние от дома до школы — то есть длина вектора пути (3, 4)?

Подсказка: вспомните теорему Пифагора. Вектор (3, 4) можно изобразить как гипотенузу прямоугольного треугольника с катетами 3 и 4.

Смотрите: у вас есть вектор (3, 4). Вы знаете куда он смотрит. Но сколько он длиной — три? четыре? семь?

Ответ — ровно пять. И это не случайность и не удобный пример. Это древний математический факт, которому четыре тысячи лет. Египтяне знали тройку 3-4-5 задолго до того, как её доказал Пифагор. Они натягивали верёвку с 12 узлами на равных расстояниях, складывали из неё треугольник со сторонами 3-4-5 — и получали идеальный прямой угол. Этим способом строились пирамиды.

Та же тройка лежит в основе длины вектора. Нарисуйте (3, 4): три шага вправо, четыре вверх. Теперь проведите горизонтальную и вертикальную линию от начала к концу стрелки. Что получилось?

Прямоугольный треугольник. Катеты — 3 и 4. Стрелка — гипотенуза.

Теорема Пифагора. Та самая.

x y 0 1 2 3 1 2 3 3 4 5 v=(3,4)

Синяя стрелка — вектор. Оранжевый и зелёный — катеты. Гипотенуза² = 3² + 4² = 9 + 16 = 25. Длина = 5.

Проверьте: (5, 12). Длина = √(25 + 144) = √169 = 13. Снова целое число. Это не случайность — такие тройки называют пифагоровыми, и их бесконечно много. Теперь другой вопрос. Представьте: вы программируете камеру в игре. Камера должна смотреть на персонажа. У вас есть вектор — он указывает куда смотреть. Вот только его длина случайная: зависит от того, где стоит камера.

Длина вам не нужна. Нужно только направление.

Что сделать? Разделить вектор на его длину. Каждая компонента уменьшится пропорционально — направление сохранится, а длина станет ровно 1. Это называется нормализацией.

v  = (3, 4)
|v| = 5

v̂ = (3/5, 4/5) = (0.6, 0.8)

Проверка: |v̂| = √(0.6² + 0.8²) = √(0.36 + 0.64) = √1 = 1. Длина ровно единица.

Нормализованный вектор принято обозначать v̂ — «v с крышечкой». Он хранит только «куда», без «насколько далеко».

Последнее. Вы знаете длину вектора из начала координат. Но что если нужно расстояние между двумя произвольными точками — A и B где-то на плоскости?

Никакой новой формулы. Вспомните вычитание: вектор от A до B — это B − A. Расстояние — это его длина. Всё.

A = (1, 1),  B = (4, 5)

B − A = (3, 4)

dist(A, B) = |B − A| = √(9 + 16) = 5
x y 0 1 2 3 4 1 2 3 4 5 A(1,1) B(4,5) 3 4 5 B−A=(3,4) |B−A|=5

Красная точка — A, синяя — B. Пунктиры показывают компоненты вектора B−A: три единицы вправо и четыре вверх. Синяя стрелка — сам вектор. Его длина — расстояние между A и B. Тот же треугольник 3-4-5, просто нарисованный не из нуля, а между двумя произвольными точками.

Официальное название — евклидово расстояние. Оно работает в пространстве любой размерности: добавляйте компоненты — добавляйте слагаемые под корень.

dist(A, B) = √((b₁−a₁)² + (b₂−a₂)² + ... + (bₙ−aₙ)²)

Квартира (54, 2, 7, 12) и квартира (50, 2, 5, 8) — два вектора в четырёхмерном пространстве. Евклидово расстояние между ними говорит, насколько они похожи. Именно на этой идее работают алгоритмы поиска ближайших соседей, кластеризации, рекомендательные системы.

Длина вектора: |v| = √(v₁² + v₂²) — теорема Пифагора. Вектор и его катеты образуют прямоугольный треугольник.

Нормализация: v̂ = v / |v|. Единичный вектор того же направления. Нельзя нормализовать нулевой вектор.

Расстояние между точками: dist(A, B) = |B − A|. Сначала вычитание — получаем вектор, потом берём его длину.

Евклидово расстояние работает в любом числе измерений — основа поиска похожих объектов.

Обсуждение урока

0
Комментарии видны всем. Чтобы участвовать в обсуждении, войдите или зарегистрируйтесь.
Модерация сообщества

Пожаловаться на комментарий

Расскажите модераторам, что именно требует внимания.