Лучше использовать Вектор, чтобы получить расстояния - PullRequest
0 голосов
/ 11 января 2012

В некоторых случаях Векторов, чтобы получить расстояние между двумя точками, я проверяю, что мне нужно только вычитать.Но в других примерах использовалось вычитание с квадратным корнем.Я хотел бы знать, в чем разница!

Distance = |P-E| = |(3,3)-(1,2)| = |(2,1)| = sqrt(2<sup>2</sup>+1<sup>2</sup>) = sqrt(5) = 2.23

Distance = |P-E| = |(3,3)-(1,2)| = |(2,1)|

Tks

Ответы [ 4 ]

1 голос
/ 11 января 2012

Нет такой вещи, как одно истинное расстояние в векторном пространстве.Обычно расстояние обозначает функцию расстояния d(x,y) (где x и y - 2 вектора), которая подчиняется некоторым правилам, которые, вероятно, кажутся очевидными:

  • для любого x, y d(x,y) >= 0
  • d(x,y) == 0 тогда и только тогда, когда x==y
  • для любого x, y d(x,y) == d(y,x)
  • для любого x, y, z d(x,y) <= d(x,z) + d(z,y)

Одной из таких функций расстояния является евклидово расстояние (с квадратным корнем), но есть и другие, такие как 1-норма (также известная как расстояние такси или манхэттен), которая является суммой абсолютных значений разностей в координатах или Хэмминга.расстояние (количество различающихся координат).

В зависимости от того, что вы делаете, могут быть полезны разные функции расстояния.Евклидово расстояние - это, вероятно, то, что вы считаете «нормальным» расстоянием.

0 голосов
/ 11 января 2012

Если вы говорите о евклидовом расстоянии , то ваш первый пример верен (я интерпретирую 22 и 12 как означающие "2 в квадрате" и "1 в квадрате" соответственно).

0 голосов
/ 11 января 2012

Используем обозначение | вектор | в школе до норма вектор. В основном вы «переводите» вектор в скаляр .

0 голосов
/ 11 января 2012

Насколько я знаю, вам нужно использовать метод квадратного корня.Просто вычитая, вы получаете другой вектор, который не представляет расстояние - он представляет точку, в которой вы окажетесь.

...