Python学习系列文章👉 目录 👈

在这里插入图片描述

一、概述

曼哈顿街区熙熙攘攘,在高处向下望去,曼哈顿的建筑方方正正地排列在一条条街道上,仿佛一个个棋子排列在键盘上。
在这里插入图片描述
想要计算两个建筑之间的距离,我们不能横穿某个建筑,需要拐弯抹角,经过一个个十字路口,才能到达我们想要去的地方。
在这里插入图片描述

曼哈顿距离,也正是这个原理,不能像 绿线/) 一样,横穿建筑,而是需要和其它三条线一样, 穿过大街小巷

请添加图片描述

二、计算公式

① 二维平面上的曼哈顿距离

假设 二维平面 内有两点: a ( x 1 , y 1 ) a(x_{1},y_{1}) a(x1,y1) b ( x 2 , y 2 ) b(x_{2},y_{2}) b(x2,y2)

则二维平面的曼哈顿距离公式为:

d 12 = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ d_{12}=|x_{1}-x_{2}|+|y_{1}-y_{2}| d12=x1x2+y1y2

在这里插入图片描述

例如上图的 A ( 1 , 1 ) A(1,1) A(1,1) B ( 5 , 4 ) B(5,4) B(5,4),则 A B AB AB 两点的距离为:

d A B = ∣ 5 − 1 ∣ + ∣ 4 − 1 ∣ = 4 + 3 = 7 \begin{aligned} d_{AB} &=|5-1|+|4-1| \\ &=4+3\\ &=7 \end{aligned} dAB=51+41=4+3=7

② 三维空间上的曼哈顿距离

假设 三维空间 内有两点: a ( x 1 , y 1 , z 1 ) a(x_{1},y_{1},z_{1}) a(x1,y1,z1) b ( x 2 , y 2 , z 2 ) b(x_{2},y_{2},z_{2}) b(x2,y2,z2)

则三维空间的距离公式为:

d 12 = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ + ∣ z 1 − z 2 ∣ d_{12}=|x_{1}-x_{2}|+|y_{1}-y_{2}|+|z_{1}-z_{2}| d12=x1x2+y1y2+z1z2
在这里插入图片描述
举个例子,比如上图的 A ( 1 , 2 , 3 ) A(1,2,3) A(1,2,3) B ( 6 , 3 , 5 ) B(6,3,5) B(6,3,5) 两点,计算 A B AB AB 两点的曼哈顿距离为:

d A B = ∣ 6 − 1 ∣ + ∣ 3 − 2 ∣ + ∣ 5 − 3 ∣ = 5 + 1 + 2 = 8 \begin{aligned} d_{AB} &=|6-1|+|3-2|+|5-3| \\ &=5+1+2\\ &=8 \end{aligned} dAB=61+32+53=5+1+2=8

③ n维空间上的曼哈顿距离

假设 n维空间 内有两点: a ( x 11 , x 12 , . . . , x 1 n ) a(x_{11},x_{12},...,x_{1n}) a(x11,x12,...,x1n) b ( x 21 , y 22 , . . . , z 2 n ) b(x_{21},y_{22},...,z_{2n}) b(x21,y22,...,z2n)

则n维空间的距离公式为:

d 12 = ∑ k = 1 n ∣ x 1 k − x 2 k ∣ d_{12}=\sum_{k=1}^n|x_{1k}-x_{2k}| d12=k=1nx1kx2k

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐