二维平面中曼哈顿距离与切比雪夫距离的相互转换
定义
两点 \(u(x_1, y_1)\) 和 \(v(x_2, y_2)\) 之间的曼哈顿距离大家都是熟悉的,即:
\[|x_1 - x_2| + |y_1 - y_2|
\]
我们可以这样看曼哈顿距离:在棋盘中,只能水平走或竖直走,且每走一格需要花费步数 1,在这种条件下,从起点到终点的最少步数。
而切比雪夫距离定义为:
\[max\{|x_1 - x_2|, |y_1 - y_2| \}
\]
我们可以这样看切比雪夫距离:在棋盘中,不仅能水平走或竖直走还能沿两对角线方向走,且每走一格需要花费步数 1(从 \((x, y)\) 走到 \((x + 1, y - 1)\) 可以只用 1 步),在这种条件下,从起点到终点的最少步数。
相互转化
我们定义 \(M(u, v)\) 为两点间的曼哈顿距离,\(Q(u, v)\) 为两点间的切比雪夫距离,则:
\[\begin{aligned}
M(u, v) &= |x_1 - x_2| + |y_1 - y_2| \\
&= \max\{ x_1 - x_2 + y_1 - y_2, x_2 - x_1 + y_1 - y_2, x_1 - x_2 + y_2 - y_1, x_2 - x_1 + y_2 - y_1\} \\
&= \max\{|(x_1 + y_1) - (x_2 + y_2)|, |(x_1 - y_1) - (x_2 - y_2)| \} \\
&= Q((x_1 + y_1, x_1 - y_1), (x_2 + y_2, x_2 - y_2))
\end{aligned}
\]
所以 \(u^{'}(x_1 + y_1, x_1 - y_1)\),\(v^{'}(x_2 + y_2, x_2 - y_2)\)
这样一来,计算 \(M(u, v)\) 也就是计算 \(Q(u^{'}, v^{'})\)。
浙公网安备 33010602011771号