关于切比雪夫距离的一些感想

传送门

切比雪夫距离和可以转化为求曼哈顿距离和

为什么呢?

切比雪夫距离:

DisA,B=max(|XAXB|,|YAYB|)Dis(A,B)=max(|XA−XB|,|YA−YB|)

曼哈顿距离:

Dis(A,B)=|XAXB|+|YAYB|Dis(A,B)=|XA−XB|+|YA−YB|

转化一:

先介绍一下去max的方法:max(X,Y)=(X+Y+|XY|)/2max(X,Y)=(X+Y+|X−Y|)/2
相应的,去绝对值的方法:|XY|=max(XY,YX)|X−Y|=max(X−Y,Y−X)

由此我们可以开始推导公式:
X=X+Y,Y=XYX′=X+Y,Y′=X−Y

max(|XAXB|,|YAYB|)max(|XA′−XB′|,|YA′−YB′|)

=max(|(XA+YA)(XB+YB)|,|(XAYA)(XBYB)|)=max(|(XA+YA)−(XB+YB)|,|(XA−YA)−(XB−YB)|)

=max((XA+YA)(XB+YB),(XB+YB)(XA+YA)),(XAYA)(XBYB),(XBYB)(XAYA))=max((XA+YA)−(XB+YB),(XB+YB)−(XA+YA)),(XA−YA)−(XB−YB),(XB−YB)−(XA−YA))

=max((XAXB)+(YAYB),(XBXA)+(YBYA),(XAXB)+(YBYA),(XBXA)+(YAYB))=max((XA−XB)+(YA−YB),(XB−XA)+(YB−YA),(XA−XB)+(YB−YA),(XB−XA)+(YA−YB))

=|XAXB|+|YAYB|=|XA−XB|+|YA−YB|

由于X=X+Y,Y=XYX′=X+Y,Y′=X−Y
同理可得X+Y=2X,XY=2YX′+Y′=2X,X′−Y′=2Y

于是切比雪夫距离可以转化为曼哈顿距离

转化二:

切比雪夫距离为kk的是一个边长为2k2k的正方形上的所有点

曼哈顿距离为k的是一个边长为22k22k的菱形上的点

也就是说,如果把切比雪夫距离意义下的坐标旋转4545∘再缩小到原来的2222,就能得到曼哈顿距离意义下的坐标。

举个简单的例子直观理解——当k=1k=1时……

旋转4545∘可以乘旋转矩阵,结果是一样的。

你可能感兴趣的:(小技巧【灌水?】)