什么是曼哈顿距离?
曼哈顿距离又称出租车距离、城市街区距离或 L1 距离,它衡量的是:当你只能沿水平和垂直方向移动时,两点之间究竟有多远——就像出租车在纽约曼哈顿棋盘式的街道上行驶一样。与"两点之间直线最短"的欧几里得距离不同,曼哈顿距离把水平移动和垂直移动分别累加,永远无法斜穿一个街区抄近路。
如何使用本计算器
把第一个点的坐标填入 X₁ 和 Y₁,第二个点的坐标填入 X₂ 和 Y₂。计算器会立即返回曼哈顿距离的总值,同时给出水平分量和垂直分量,让你一眼看清结果是怎么算出来的。
公式详解
曼哈顿距离的定义为 $$d = \left| \text{X}_2 - \text{X}_1 \right| + \left| \text{Y}_2 - \text{Y}_1 \right|$$ 两侧的竖线表示绝对值,会去掉正负号,因此方向并不重要——无论向左还是向右,都算作正的水平位移。最后把这两个绝对差值相加即可。
实例演算
假设第一个点是 \((1, 2)\),第二个点是 \((4, 6)\)。水平差值为 \(\left| 4 - 1 \right| = 3\),垂直差值为 \(\left| 6 - 2 \right| = 4\),二者相加得 $$d = 3 + 4 = 7$$ 值得注意的是,同样这两个点的欧几里得距离是 5,可见网格的限制使出租车路径更长。
常见问题
曼哈顿距离和欧几里得距离有什么区别? 欧几里得距离是"直线最短、如鸟飞行"的路径;而曼哈顿距离只允许沿坐标轴方向移动,因此它总是大于或等于欧几里得距离。
坐标可以是负数或小数吗? 可以。公式使用的是绝对值,所以负数和小数坐标都能正常计算。
曼哈顿距离用在哪些场景? 它在机器学习(如 k 近邻、聚类分析)、国际象棋与网格寻路、图像处理,以及街道网格上的物流配送路线规划中都很常见。