码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 曼哈顿距离和切比雪夫距离的转换


    引言

    假设有两个点 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| ∣x1​−x2​∣+∣y1​−y2​∣

    切比雪夫距离 = m a x ( ∣ x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ ) max(|x_1-x_2|,|y_1-y_2|) max(∣x1​−x2​∣,∣y1​−y2​∣)

    一个是折线的距离,一个是 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)|) ∣x1​−x2​∣+∣y1​−y2​∣=max{x1​−x2​+y1​−y2​,x1​−x2​+y2​−y1​,x2​−x1​+y1​−y2​,x2​−x1​+y2​−y1​}=max(∣(x1​+y1​)−(x2​+y2​)∣,∣(x1​−y1​)−(x2​−y2​)∣)

    即: ( 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​,x1​−y1​)到 ( x 2 + y 2 , x 2 − y 2 ) (x_2+y_2,x_2-y_2) (x2​+y2​,x2​−y2​)的切比雪夫距离

    反过来,解一个二元一次方程组可得, ( 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​​,2x1​−y1​​)到 ( x 2 + y 2 2 , x 2 − y 2 2 ) (\frac{x_2+y_2}2,\frac{x_2-y_2}2) (2x2​+y2​​,2x2​−y2​​)的曼哈顿距离

    图形角度

    请添加图片描述

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

  • 相关阅读:
    Git的基本使用(用户初始化配置、新建代码库、把文件提交到缓存区、把文件提交到本地仓库等)
    Java 中你绝对没用过的一个关键字?
    Day14--商品详情-渲染商品导航区域
    高性能MySQL(第4版) 第一章 MySQL架构 读书笔记
    从零学算法377
    Maven配置环境变量
    H5页面调用admob激励视频,用户获取奖励
    自定义类型转换函数operator MyInt()
    第三次工业革命(七)
    电机与拖动 - 8 直流电机的电力拖动
  • 原文地址:https://blog.csdn.net/weixin_43544179/article/details/126681546
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号