曼哈顿距离与切比雪夫距离及其相互转化

 


本文只讨论二维空间中的曼哈顿距离与切比雪夫距离

曼哈顿距离

定义

设平面空间内存在两点,它们的坐标为(x1,y1)(x2,y2)

dis=|x1x2|+|y1y2|

即两点横纵坐标差之和

煮个栗子

如图所示,图中A,B两点的曼哈顿距离为AC+BC=4+3=7

 

切比雪夫距离

定义

设平面空间内存在两点,它们的坐标为(x1,y1)(x2,y2)

dis=max(|x1x2|,|y1y2|)

即两点横纵坐标差的最大值

再煮个栗子

dis=max(AC,BC)=AC=4

 

两者之间的关系

两者的定义看上去好像毛线关系都没有,但实际上,这两种距离可以相互转化

我们考虑最简单的情况,在一个二维坐标系中,设原点为(0,0)

如果用曼哈顿距离表示,则与原点距离为1的点会构成一个边长为2的正方形

 

 

如果用切比雪夫距离表示,则与原点距离为1的点会构成一个边长为2的正方形

 

 

仔细对比这两个图形,我们会发现这两个图形长得差不多,他们应该可以通过某种变换互相转化。

事实上,

将一个点(x,y)的坐标变为(x+y,xy)后,原坐标系中的曼哈顿距离 = 新坐标系中的切比雪夫距离

将一个点(x,y)的坐标变为(x+y2,xy2) 后,原坐标系中的切比雪夫距离 = 新坐标系中的曼哈顿距离

 

用处

切比雪夫距离在计算的时候需要取max,往往不是很好优化,对于一个点,计算其他点到该的距离的复杂度为O(n)

而曼哈顿距离只有求和以及取绝对值两种运算,我们把坐标排序后可以去掉绝对值的影响,进而用前缀和优化,可以把复杂度降为O(1)

例题

 

 

 

posted @   自为风月马前卒  阅读(18622)  评论(9编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)

Contact with me

点击右上角即可分享
微信分享提示