曼哈顿距离
出租车几何或曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。
曼哈顿距离公式如下:
简析
就曼哈顿距离的概念来讲,只能上、下、左、右四个方向进行移动,并且两点之间的曼哈顿距离是两点之间的最短距离(在只能向上、下、左、右四个方向进行移动的前提下)。
假设从一点到达另外一点(只能向上、下、左、右四个方向进行移动,下同),要使路程最短,就只能每一步都有用(使之与另外一点的南北距离或东西距离缩短),因此咱们最早想到的是图中的红线,它的长度就是两点之间的曼哈顿距离。而红线能够经过平移转化为蓝线、黄线等线,它们的长度都与红线相等。
那么咱们能够利用曼哈顿距离解决什么问题呢?
曼哈顿距离能够代替一个广搜,不过这个广搜是有条件限制的:
- ①只能上、下、左、右四个方向进行移动(不少迷宫问题其实都有这个特性)
- ②只求两点之间最短路径的长度,不求路径过程
为了让你们更清晰地体会,举一例题:最少联通代价
此题本是要用深搜+广搜解决,但巧法可只用一个小深搜+曼哈顿距离思想
海明距离
在信息编码中,两个合法代码对应位上编码不同的位数称为码距,又称海明距离。
示例中主要使用海明距离进行字符串的比较
计算海明距离的一种方法,就是对两个位串进行异或(xor)运算,并计算出异或运算结果中1的个数。例如110和011这两个位串,对它们进行异或运算,其结果是:
110⊕011=101
异或结果中含有两个1,因此110和011之间的海明距离就等于2