距离

欧几里得距离 Euclidean distance

(xa,ya)(x_a, y_a)(xb,yb)(x_b, y_b) 之间的 的 欧几里得距离 是
(xaxb)2+(yayb)2\sqrt{(x_a - x_b)^2 + (y_a - y_b)^2}

在 C++ 中可以用 hypot 计算,有时为了避免精度误差,不开根号

曼哈顿距离 Manhattan distance

(xa,ya)(x_a, y_a)(xb,yb)(x_b, y_b) 之间的 曼哈顿距离 是
xaxb+yayb|x_a - x_b| + |y_a - y_b|

这等价于 (xa+ya,xaya)(x_a + y_a, x_a - y_a)(xb+yb,xbyb)(x_b + y_b, x_b - y_b) 的 切比雪夫距离

切比雪夫距离 Chebyshev distance

(xa,ya)(x_a, y_a)(xb,yb)(x_b, y_b) 之间的 切比雪夫距离 是
max(xaxb,yayb)\max(|x_a - x_b|, |y_a - y_b|)

这等价于 (xa+ya,xaya)(x_a + y_a, x_a - y_a)(xb+yb,xbyb)(x_b + y_b, x_b - y_b) 的 曼哈顿距离 的 一半

  1. 距离
    1. 欧几里得距离 Euclidean distance
    2. 曼哈顿距离 Manhattan distance
    3. 切比雪夫距离 Chebyshev distance