传送门
求切比雪夫距离和可以转化为求曼哈顿距离和
为什么呢?
切比雪夫距离:
Dis(A,B)=max(|XA−XB|,|YA−YB|)Dis(A,B)=max(|XA−XB|,|YA−YB|)
曼哈顿距离:
Dis(A,B)=|XA−XB|+|YA−YB|Dis(A,B)=|XA−XB|+|YA−YB|
转化一:
先介绍一下去max的方法:max(X,Y)=(X+Y+|X−Y|)/2max(X,Y)=(X+Y+|X−Y|)/2
相应的,去绝对值的方法:|X−Y|=max(X−Y,Y−X)|X−Y|=max(X−Y,Y−X)
由此我们可以开始推导公式:
令X′=X+Y,Y′=X−YX′=X+Y,Y′=X−Y
max(|X′A−X′B|,|Y′A−Y′B|)max(|XA′−XB′|,|YA′−YB′|)
=max(|(XA+YA)−(XB+YB)|,|(XA−YA)−(XB−YB)|)=max(|(XA+YA)−(XB+YB)|,|(XA−YA)−(XB−YB)|)
=max((XA+YA)−(XB+YB),(XB+YB)−(XA+YA)),(XA−YA)−(XB−YB),(XB−YB)−(XA−YA))=max((XA+YA)−(XB+YB),(XB+YB)−(XA+YA)),(XA−YA)−(XB−YB),(XB−YB)−(XA−YA))
=max((XA−XB)+(YA−YB),(XB−XA)+(YB−YA),(XA−XB)+(YB−YA),(XB−XA)+(YA−YB))=max((XA−XB)+(YA−YB),(XB−XA)+(YB−YA),(XA−XB)+(YB−YA),(XB−XA)+(YA−YB))
=|XA−XB|+|YA−YB|=|XA−XB|+|YA−YB|
由于X′=X+Y,Y′=X−YX′=X+Y,Y′=X−Y
同理可得X′+Y′=2X,X′−Y′=2YX′+Y′=2X,X′−Y′=2Y
于是切比雪夫距离可以转化为曼哈顿距离
转化二:
切比雪夫距离为kk的是一个边长为2k2k的正方形上的所有点
曼哈顿距离为k的是一个边长为2√2k22k的菱形上的点
也就是说,如果把切比雪夫距离意义下的坐标旋转45∘45∘再缩小到原来的2√222,就能得到曼哈顿距离意义下的坐标。
举个简单的例子直观理解——当k=1k=1时……
旋转45∘45∘可以乘旋转矩阵,结果是一样的。