二维平面中曼哈顿距离与切比雪夫距离的相互转换

定义

两点 \(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^{'})\)

posted @ 2025-04-02 11:13  Young_Cloud  阅读(183)  评论(0)    收藏  举报