• 曼哈顿距离和切比雪夫距离的转换


    引言

    假设有两个点 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)

    曼哈顿距离 = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ |x_1-x_2|+|y_1-y_2| x1x2+y1y2

    切比雪夫距离 = m a x ( ∣ x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ ) max(|x_1-x_2|,|y_1-y_2|) max(x1x2,y1y2)

    一个是折线的距离,一个是 x,y 方向上更大的那个距离,这二者有什么关系呢?

    数学角度

    ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ = m a x { x 1 − x 2 + y 1 − y 2 , x 1 − x 2 + y 2 − y 1 , x 2 − x 1 + y 1 − y 2 , x 2 − x 1 + y 2 − y 1 } = m a x ( ∣ ( x 1 + y 1 ) − ( x 2 + y 2 ) ∣ , ∣ ( x 1 − y 1 ) − ( x 2 − y 2 ) ∣ ) |x_1-x_2|+|y_1-y_2| = max\{x_1-x_2+y_1-y_2, x_1-x_2+y_2-y_1, x_2-x_1+y_1-y_2,x_2-x_1+y_2-y_1\} \\ = max(|(x_1+y_1)-(x_2+y_2)|,|(x_1-y_1)-(x_2-y_2)|) x1x2+y1y2=max{x1x2+y1y2,x1x2+y2y1,x2x1+y1y2,x2x1+y2y1}=max((x1+y1)(x2+y2),(x1y1)(x2y2))

    即: ( x 1 , y 1 ) (x_1, y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)的曼哈顿距离 = ( x 1 + y 1 , x 1 − y 1 ) (x_1+y_1,x_1-y_1) (x1+y1,x1y1) ( x 2 + y 2 , x 2 − y 2 ) (x_2+y_2,x_2-y_2) (x2+y2,x2y2)的切比雪夫距离

    反过来,解一个二元一次方程组可得, ( x 1 , y 1 ) (x_1, y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)的切比雪夫距离 = ( x 1 + y 1 2 , x 1 − y 1 2 ) (\frac{x_1+y_1}2,\frac{x_1-y_1}2) (2x1+y1,2x1y1) ( x 2 + y 2 2 , x 2 − y 2 2 ) (\frac{x_2+y_2}2,\frac{x_2-y_2}2) (2x2+y2,2x2y2)的曼哈顿距离

    图形角度

    请添加图片描述

    红色是曼哈顿距离为 1 的点的集合,橙色是距离为 1 的切比雪夫距离的点的集合

  • 相关阅读:
    VC6.0下载和安装教程
    GitHub爬虫项目详解
    阿里云易立:以增效促降本,容器服务全面进入智能化时代
    实验室管理系统
    别再盲目投放Facebook广告了!用这些方法测品更靠谱!
    在Visual Studio Code macOS上尽量用Clang编译C++
    win10如何清除ftp自动保存的账户密码
    企业建设数字化工厂的四个要点
    SpringBoot中配置、启动Tomcat总结
    数据结构-浅入浅出
  • 原文地址:https://blog.csdn.net/weixin_43544179/article/details/126681546