首页 > 其他分享 >题目中常见的几种距离

题目中常见的几种距离

时间:2023-05-26 17:48:13浏览次数:38  
标签:x1 题目 曼哈顿 常见 距离 几种 x2 y1 y2

距离

在几何学里面距离并不单指直线距离,有很多其他的距离没有那么常用,但考场上可能会出现,为了防止题目不给出定义等,我们有必要认识一下各种距离。

后面的角标为了清楚直接打到字母后面了

欧几里得距离

也被称作欧式距离,在平面直角坐标系中,设有两点 \(A(x_{1},y_{1}),B(x_{2},y_{2})\),他们的欧几里得距离其实就是两点所连成的线段的长度,初中也讲过计算公式:

\[|AB|=\sqrt{(x_{2}-x_{1})^{2}+(y_{2}-y_{1})^{2}} \]

这个公式怎么来的呢?看一下这张图:

image

我们可以看到我们的 \(A,B\) 两点,我们选了一个中转点 \(C\) 来帮助我们计算 \(|AB|\),而选择的 \(C\) 点与 \(A,B\) 构成了一个三角形,而我们要求的就是 \(h\),但是很明显是可以通过勾股定理来计算的,也就是 \(h=\sqrt{f^{2}+g^{2}}\),而 \(f\) 的值就是 \(|x_{2}-x_{1}|\),\(g\) 的值为 \(|y_{2}-y_{1}|\),平方后绝对值可以不加,所以得到了上面的公式。

当然我们不一定只在平面上解决这个问题,有可能会遇到三维空间的问题,也就是立体空间里面求解欧几里得距离。

image

技术有限

我们可以看到我们要求的是 \(A(x1,y1,z1),G(x2,y2,z2)\) 两点的距离 \(|AG|\),我们考虑这样来求解:

如果想要求 \(|AG|\),我们从图中可以看出 \(AG\) 是 \(A,G,C\) 所在平面的一个直角三角形的斜边,而 \(GC\) 的长度我们是可以求出来的,就是 \(|z2-z1|\),所以问题转化为求 \(AC\) 的长度;\(AC\) 所在的平面为 \(ABCD\) ,我们可以直接用上面的公式来计算出 \(AC^{2}=(y2-y1)^{2}+(x2-y1)^{2}\),然后跟 \(GC\) 勾股定理一下就可以得出以下公式:

\[|AG|=\sqrt{(x2-x1)^2+(y2-y1)^2+(z2-z1)^2} \]

由此我们也可以推广到多维,但大多数情况用不到,而且我也不会证

虽然欧几里得距离很有用,但也有缺点,比如最后得出的答案往往都是带根号的,会存在一定的误差,在信息学里这是一个难以解决的问题。

曼哈顿距离

在二维的空间内,两个点之间的曼哈顿距离为他们横坐标之差的绝对值与纵坐标之差的绝对值的和。设 \(A(x1,y1),B(x2,y2)\),则两点之间的曼哈顿距离可以表示为

\[d(A,B)=|x1-x2|+|y1-y2| \]

image

例如上图中的蓝线为欧几里得距离,黑线为曼哈顿距离。

当然曼哈顿距离也可以通过类似欧几里得距离的推理出 N 维空间的公式。

设 \(A(x1,x2,\dots,xn),B(y1,y2,\dots,yn)\),则有:

\[d(A,B)=|x1-y1|+|x2-y2|+\dots+|xn-yn|\\ =\sum_{i=1}^{n}|xi-yi| \]

性质

曼哈顿距离有以下数学性质:

  • 非负性,这一点很明显就能看出来
  • 统一性,点到自身的曼哈顿距离为 \(0\)。
  • 对称性,\(A\) 到 \(B\) 与 \(B\) 到 \(A\) 的曼哈顿距离相等。
  • 三角不等式,从 \(i\) 到 \(j\) 的直接距离不会大于途经的任何其他点 \(k\) 的距离。\(d(i,j)\le d(i,k)+d(k,j)\)

切比雪夫距离

切比雪夫距离是向量空间中的一种度量,两个点之间的距离定义为其各坐标数值差的最大值。

在二维空间内,两个点之间的切比雪夫距离为他们横坐标之差的绝对值和纵坐标之差的绝对值的最大值。设 \(A(x1,y1),B(x2,y2)\),则 \(A,B\) 之间的切比雪夫距离可以用公式表示为:

\[d(A,B)=\max(|x1-x2|,|y1-y2|) \]

\(n\) 维空间中 \(A(x1,x2,\dots,xn),B(y1,y2,\dots,yn)\) 的切比雪夫距离的公式可以表示为:

\[d(x,y)=\max\{|x1-y1|,|x2-y2|,\dots,|xn-yn|\} \]

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

首先我们考虑曼哈顿距离为 \(1\) 的所有点组成的图像:

image

然后再来看看所有切比雪夫距离为 \(1\) 的图像:

image

对比一下,你会发现,这两个正方形是相似的。

所以我们可以找到曼哈顿距离与切比雪夫距离之间的关系!

我们假设 \(A(x1,y1),B(x2,y2)\),我们把曼哈顿距离中的绝对值拆开,能够得到四个值,这四个值中最大的是两个非负数之和,即曼哈顿距离。则 \(A,B\) 两点的曼哈顿距离为:

\[d(A,B)=|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)|) \]

欸,这不是 \((x1+y1,x1-y1)\) 与 \((x2+y2,x2-y2)\) 两点的切比雪夫距离吗?

所以,将点 \((x,y)\) 转化为 \((x+y,x-y)\),新坐标系下的切比雪夫距离即为原坐标系下的曼哈顿距离。

那我们是不是也可以用切比雪夫距离转化成曼哈顿距离呢?

设 \(A(x1,y1),B(x2,y2)\) 的切比雪夫距离为:

\[d(A,B)=\max\{|x1-x2|,|y1-y2|\}\\ =\max\left\{ \left|\frac{x1+y1}{2}-\frac{x2+y2}{2}\right|+\left| \frac{x1-y1}{2}-\frac{x2-y2}{2} \right| \right\} \]

为什么呢?

还记得上面的两张图吗?把切比雪夫的转 \(45^{\circ}\) 后再缩小至 \(\frac{1}{2}\) 不就是曼哈顿距离的了吗?所以都带有 \(\frac{1}{2}\) 这个系数。

也就是说,将每一个点 \((x,y)\) 转化为 \((\frac{x+y}{2},\frac{x-y}{2})\),新坐标系下的曼哈顿距离即为原坐标系下的切比雪夫距离。

结论

  • 曼哈顿坐标系是通过切比雪夫坐标系旋转 \(45^{\circ}\) 后,再缩小到原来的一半得到的。

  • 将一个点 \((x,y)\) 的坐标转化为 \((x+y,x-y)\) 后,原坐标系中的曼哈顿距离等于新坐标系中的切比雪夫距离。

  • 将一个点 \((x,y)\) 的坐标转化为 \((\frac{x+y}{2},\frac{x-y}{2})\) 后,原坐标系中的切比雪夫距离等于新坐标系中的曼哈顿距离。

碰到求切比雪夫距离或者曼哈顿距离的题目的时候,我们往往可以相互转化来求解。

\(L_{m}\) 距离

一般的,我们定义平面上两点 \(A(x1,y1),B(x2,y2)\) 之间的 \(L_{m}\) 距离为

\[d(L_{m})=(|x1-x2|^{m}+|y1-y2|^{m})^{\frac{1}{m}} \]

容易发现 \(L_{2}\) 就是欧几里得距离,\(L_{1}\) 就是曼哈顿距离。

汉明距离

汉明距离是两个字符串之间的距离,它表示两个长度相同的字符串对应位字符不同的数量

通常用于比较两个串的差异。

部分参考自https://www.luogu.com.cn/blog/xuxing/Distance-Algorithm

标签:x1,题目,曼哈顿,常见,距离,几种,x2,y1,y2
From: https://www.cnblogs.com/Multitree/p/17435386.html

相关文章

  • 前端vue中实现文件下载的几种方法 四种方法, a.download = "重新下命名下载文件名"
    前端vue中实现文件下载的几种方法原文链接:https://blog.csdn.net/weixin_46074961/article/details/105677732第一种前端创建超链接,通过a标签向后端发送get请求,需要给a标签添加一个download属性这种写法是创造了一个a标签,把地址写到a标签里再用js调用点击,实现访问文件地址......
  • C++几种智能指针之间的比较
    这些智能指针在设计的时候,一个关键的问题就是所有权的控制。如果把指针所指向的对象比作电视机的话,那么指针就是观众。第一个人需要看电视的时候需要打开它,没人看的时候就要保证把电视关掉。对于std::auto_ptr,boost::shared_ptr和scoped_ptr,情况如下:1.std::auto_ptr:auto_ptr这个......
  • 资料分析——由月份算季度的一整道题目
    遇到有点懵逼,不知道如何去下手,故此记录。开始懵逼的地方,不知道咋对应季度这道题继续提醒我:啥都不会,多半是混合增长率!继续懵逼,第四季度咋找?答:作差!!!下述同理:作差,看量即可,不看率。......
  • 网络常见的 9 大命令,非常实用!
    网络常见的9大命令,非常实用!1.ping命令PING(PacketInternetGroper),因特网包探索器,用于测试网络连接量的程序。Ping是工作在TCP/IP网络体系结构中应用层的一个服务命令,主要是向特定的目的主机发送ICMP(InternetControlMessageProtocol因特网报文控制协议)Echo请求报文,测试......
  • 如何避免Salesforce Apex代码中5个常见错误,提升开发技巧?
    编码是一门需要严谨和谨慎的技术,即使是有经验的开发人员也会犯错。一些最常见的编程错误,可能会导致严重的后果。因此,作为一名开发人员,了解并避免这些错误是非常重要的。本篇文章将为学习者介绍在编写Apex代码时一定要规避的5个错误。易错点1缺乏学习编程语言的能力学习编码时......
  • 使用MT4交易平台投资有哪些常见问题?
    MetaTrader4交易平台,俗称MT4,是一款专为投资者免费提供线上交易服务的平台,透过MT4交易平台,投资者将可进行外汇、贵金属、原油、期货、指数等多种丰富金融产品的交易,MetaTrader4(MT4)更具备直觉化且灵活的使用者操作界面,让用户拥有更弹性、更充足的操作空间,来满足投资者的所有需求,本......
  • Spring Test 常见错误
    案例1:资源文件扫描不到首先,我们来写一个HelloWorld版的SpringBoot程序以做测试备用。先来定义一个Controller:(https://www.java567.com,搜"spring") @RestController publicclassHelloController{ ​  @Autowired  HelloWorldServicehelloWorldService;......
  • Spring 事务常见错误。
    案例1:嵌套事务回滚错误假设我们需要对这个功能继续进行扩展,当学生注册完成后,需要给这个学生登记一门英语必修课,并更新这门课的登记学生数。为此,我添加了两个表。(https://www.java567.com,搜"spring")课程表course,记录课程名称和注册的学生数。 CREATETABLE`course`( ......
  • Spring Rest Template 常见错误
    案例1:参数类型是MultiValueMap首先,我们先来完成一个API接口,代码示例如下:(https://www.java567.com,搜"spring") @RestController publicclassHelloWorldController{  @RequestMapping(path="hi",method=RequestMethod.POST)  publicStringhi(@RequestPa......
  • WebGL几种常用服务图层的制作流程
    当前,越来越多的用户开始使用三维GIS平台SuperMapiClent3DforWebGL,对于新用户来说最常见的两个问题就是:1.为什么打开场景看不到数据?2.为何范例能实现的效果,我的数据就不行了?而造成这两个问题绝大多数的原因是数据处理不当,本文将讲解制作WebGL常用服务图层的流程及注意事项。 ......