欧几里得距离(Euclidean Distance)公式
欧几里得距离公式
欧几里得距离(Euclidean Distance)是计算两点之间直线距离的一种方法。它是最常见的距离度量方式之一,广泛应用于数学、物理、机器学习、计算机视觉等领域。
公式定义
1. 二维空间
在二维平面上,假设有两个点 A(x1, y1) 和 B(x2, y2) ,它们之间的欧几里得距离为:
d Euclidean ( A , B ) = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 d_{\text{Euclidean}}(A, B) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} dEuclidean(A,B)=(x2−x1)2+(y2−y1)2
2. 三维空间
在三维空间中,假设两个点 A(x1, y1, z1) 和 B(x2, y2, z2) ,它们之间的欧几里得距离为:
d Euclidean ( A , B ) = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 + ( z 2 − z 1 ) 2 d_{\text{Euclidean}}(A, B) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2} dEuclidean(A,B)=(x2−x1)2+(y2−y1)2+(z2−z1)2
3. 高维空间
在 n 维空间中,假设两个点 A(a1, a2, …, an) 和 B(b1, b2, …, bn) ,它们之间的欧几里得距离为:
d Euclidean ( A , B ) = ∑ i = 1 n ( b i − a i ) 2 d_{\text{Euclidean}}(A, B) = \sqrt{\sum_{i=1}^{n} (b_i - a_i)^2} dEuclidean(A,B)=i=1∑n(bi−ai)2
几何意义
欧几里得距离表示两点之间的直线距离,也称为“鸟瞰距离”。它是两点间最短的路径长度。
示例计算
示例 1:二维空间
设点 A(3, 4) 和点 B(7, 1) ,则欧几里得距离为:
d Euclidean ( A , B ) = ( 7 − 3 ) 2 + ( 1 − 4 ) 2 = 4 2 + ( − 3 ) 2 = 16 + 9 = 25 = 5 d_{\text{Euclidean}}(A, B) = \sqrt{(7 - 3)^2 + (1 - 4)^2} = \sqrt{4^2 + (-3)^2} = \sqrt{16 + 9} = \sqrt{25} = 5 dEuclidean(A,B)=(7−3)2+(1−4)2=42+(−3)2=16+9=25=5
示例 2:三维空间
设点 A(1, 2, 3) 和点 B(4, 6, 8) ,则欧几里得距离为:
d Euclidean ( A , B ) = ( 4 − 1 ) 2 + ( 6 − 2 ) 2 + ( 8 − 3 ) 2 = 3 2 + 4 2 + 5 2 = 9 + 16 + 25 = 50 ≈ 7.07 d_{\text{Euclidean}}(A, B) = \sqrt{(4 - 1)^2 + (6 - 2)^2 + (8 - 3)^2} = \sqrt{3^2 + 4^2 + 5^2} = \sqrt{9 + 16 + 25} = \sqrt{50} \approx 7.07 dEuclidean(A,B)=(4−1)2+(6−2)2+(8−3)2=32+42+52=9+16+25=50≈7.07
与其他距离公式的对比
1. 曼哈顿距离
- 曼哈顿距离是沿着坐标轴方向移动的距离之和:
d Manhattan ( A , B ) = ∣ x 2 − x 1 ∣ + ∣ y 2 − y 1 ∣ d_{\text{Manhattan}}(A, B) = |x_2 - x_1| + |y_2 - y_1| dManhattan(A,B)=∣x2−x1∣+∣y2−y1∣ - 曼哈顿距离通常比欧几里得距离大,因为它不允许斜向移动。
2. 切比雪夫距离
- 切比雪夫距离取各维度差值的最大值:
d Chebyshev ( A , B ) = max ( ∣ x 2 − x 1 ∣ , ∣ y 2 − y 1 ∣ ) d_{\text{Chebyshev}}(A, B) = \max(|x_2 - x_1|, |y_2 - y_1|) dChebyshev(A,B)=max(∣x2−x1∣,∣y2−y1∣) - 切比雪夫距离适合描述“棋盘上国王的移动距离”。
3. 闵可夫斯基距离
- 欧几里得距离是闵可夫斯基距离的一种特殊情况( p=2 ):
d Minkowski ( A , B ) = ( ∑ i = 1 n ∣ b i − a i ∣ p ) 1 / p d_{\text{Minkowski}}(A, B) = \left( \sum_{i=1}^{n} |b_i - a_i|^p \right)^{1/p} dMinkowski(A,B)=(i=1∑n∣bi−ai∣p)1/p
当 p=2 时为欧几里得距离,当 p=1 时为曼哈顿距离。
总结
欧几里得距离是一种直观且广泛应用的距离度量方法,适用于多种场景。它的核心思想是计算两点之间的直线距离,简单高效,但在高维空间中可能受到“维度灾难”的影响。
d Euclidean ( A , B ) = ∑ i = 1 n ( b i − a i ) 2 d_{\text{Euclidean}}(A, B) = \sqrt{\sum_{i=1}^{n} (b_i - a_i)^2} dEuclidean(A,B)=i=1∑n(bi−ai)2
相关文章:
欧几里得距离(Euclidean Distance)公式
欧几里得距离公式 欧几里得距离(Euclidean Distance)是计算两点之间直线距离的一种方法。它是最常见的距离度量方式之一,广泛应用于数学、物理、机器学习、计算机视觉等领域。 公式定义 1. 二维空间 在二维平面上,假设有两个点…...
HarmonyOS NEXT 鸿蒙中关系型数据库@ohos.data.relationalStore API 9+
核心API ohos.data.relationalStore API 9 数据库 数据库是存储和管理数据的系统 数据库(Database)是一个以特定方式组织、存储和管理数据的集合,通常用于支持各种应用程序和系统的运行。它不仅是存放数据的仓库,还通过一定的…...
【JavaScript】JavaScript Promises实践指南
【JavaScript】JavaScript Promises实践指南 你了解JavaScript中的Promises吗?这是一个很多人一开始就放弃的主题,但我会尽量让它变得尽可能简单。 1. “Promise”到底是什么? “Promise”是异步编程中的一个基本概念,特别是在J…...
【软件工程】习题及答案
目录 第一章 习题第一章 习题答案第二章 习题第二章 习题答案第三章 习题第三章 习题答案第四章 习题第四章 习题答案第五章 习题第五章 习题答案第六章 习题第六章 习题答案第七章 习题第七章 习题答案 第一章 习题 一、选择题 1.关于引起软件危机的原因ÿ…...
git push的时候出现无法访问的解决
fatal: 无法访问 https://github.com/...:gnutls_handshake() failed: Error in the pull function. push的时候没有输入自己的github账号密码,为了解决每次push都要登录github这个问题,采用ssh密钥的方式认证,可以免去每次都输入…...
《深度剖析Android 12 SystemUI锁屏通知布局亮屏流程:从源码到实现》
优化后文章结构: 1. 前言 强调锁屏通知布局的重要性及分析目的,引出后续源码分析的必要性。 2. 核心类解析 KeyguardViewMediator:锁屏核心逻辑控制,处理亮屏/息屏事件分发。 PhoneWindowManager:系统输入事件&…...
为什么大模型在 OCR 任务上表现不佳?
编者按: 你是否曾经用最先进的大语言模型处理企业文档,却发现它把财务报表中的“$1,234.56”读成了“123456”?或者在处理医疗记录时,将“0.5mg”误读为“5mg”?对于依赖数据准确性的运营和采购团队来说,这…...
HCIP(VLAN综合实验)
实验拓补图 实验分析 一、实验目的 掌握VLAN的创建和配置方法理解VLAN在局域网中的作用学习如何通过VLAN实现网络隔离和通信 二、实验环境 交换机(SW1、SW2、SW3)个人电脑(PC1、PC2、PC3、PC4、PC5、PC6)路由器(R1…...
每日算法-250328
记录今天学习和解决的LeetCode算法题。 92. 反转链表 II 题目 思路 本题要求反转链表中从 left 到 right 位置的节点。我们可以采用 头插法 的思路来反转指定区间的链表。 具体来说,我们首先定位到 left 位置节点的前一个节点 prev。然后,从 left 位置…...
从 Word 到 HTML:使用 Aspose.Words 轻松实现 Word 文档的高保真转换
从 Word 到 HTML:使用 Aspose.Words 轻松实现 Word 文档的高保真转换 前言一、环境准备二、核心代码实现1. 将 Word 转换为 HTML 文件流2. 优化超链接样式 三、测试效果四、总结 前言 在日常开发中,我们经常需要将 Word 文档转换为 HTML,用于…...
Android 设备实现 adb connect 连接的步骤
1. 检查设备的开发者选项 确保平板设备已开启开发者模式,并启用了USB调试。 2. 检查设备和电脑的网络连接 确保平板和电脑连接到同一个Wi-Fi网络,确认设备的 IP 地址是否正确。 通过 ping 命令测试: ping 192.168.3.243. 通过USB线进行初…...
【人工智能】解锁大模型潜力:Ollama 与 DeepSeek 的分布式推理与集群部署实践
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着大语言模型(LLM)的快速发展,其推理能力在自然语言处理、代码生成等领域展现出巨大潜力。然而,单机部署难以满足高并发、低延迟的需…...
离散的数据及参数适合用什么算法做模型
离散数据和参数适用的机器学习算法取决于具体任务(分类、回归、聚类等)、数据特点(稀疏性、类别数量等)以及业务需求。以下是针对离散数据的常用算法分类和选择建议: 1. 分类任务(离散目标变量) 经典算法 决策树(ID3/C4.5/CART) 直接处理离散特征,无需编码,可解释性…...
VMware 安装 Ubuntu 实战分享
VMware 安装 Ubuntu 实战分享 VMware 是一款强大的虚拟机软件,广泛用于多操作系统环境的搭建。本文将详细介绍如何在 VMware 中安装 Ubuntu,并分享安装过程中的常见问题及解决方法。 1. 安装前的准备工作 (1) 系统要求 主机操作系统:Windo…...
RSA 简介及 C# 和 js 实现【加密知多少系列_4】
〇、简介 谈及 RSA 加密算法,我们就需要先了解下这两个专业名词,对称加密和非对称加密。 对称加密:在同一密钥的加持下,发送方将未加密的原文,通过算法加密成密文;相对的接收方通过算法将密文解密出来原文…...
在IDEA中快速注释所有console.log
在IDEA中快速注释所有console.log 在前端IDEA中,快速注释所有console.log语句可以通过以下步骤实现2: 打开要修改的文件。使用快捷键CtrlF打开搜索框。点击打开使用正则搜索的开关或者通过AltR快捷键来打开。在搜索框输入[]*console.log[]*,…...
GPT-4o图像生成功能:技术突破与隐忧并存
2025年3月25日,OpenAI正式推出GPT-4o原生图像生成功能,宣称其实现了“文本到图像的终极跨越”。然而,这一被市场追捧的技术在短短72小时内便因用户需求过载触发限流,暴露出算力瓶颈与商业化矛盾的尖锐性。这场技术狂欢的背后&…...
SQL语言分类及命令详解(二)
目录 一、DQL (Data Query Language) 数据查询语言 核心命令:SELECT 基本语法: 详细分析: 高级特性: 示例: 二、DDL (Data Definition Language) 数据定义语言 核心命令 CREATE ALTER DROP TRUNCATE 详细…...
机器学习——LightGBM
LightGBM(light gradient boosting machine,轻量梯度提升机)是对XGBoost进行改进的模型版本,其三者之间的演变关系为:GBDT-》XGBoost-》LightGBM,依次对性能进行优化,尽管XGBoost已经很高效了,但是仍然有缺…...
linux 常见命令使用介绍
Linux 常见命令使用介绍 Linux 是一个功能强大的操作系统,其核心是命令行工具。掌握一些常用的 Linux 命令可以极大地提高工作效率。本文将详细介绍一些常见的 Linux 命令及其用法。 1. 文件与目录操作 ls - 列出文件和目录 # 查看当前目录下的所有文件和子目录&…...
故障识别 | 基于改进螂优化算法(MSADBO)优化变分模态提取(VME)结合稀疏最大谐波噪声比解卷积(SMHD)进行故障诊断识别,matlab代码
基于改进螂优化算法(MSADBO)优化变分模态提取(VME)结合稀疏最大谐波噪声比解卷积(SMHD)进行故障诊断识别 一、引言 1.1 机械故障诊断的背景和意义 在工业生产的宏大画卷中,机械设备的稳定运行…...
[已解决]服务器CPU突然飙高98%----Java程序OOM问题 (2024.9.5)
目录 问题描述问题排查问题解决参考资料 问题描述 业主单位服务器自8月29日晚上21:00起CPU突然飙高至98%,内存爆满,一直到9月5日: 问题排查 ①执行 top 命令查看Java进程PID top②执行top -Hp PID 命令查看具体的线程情况 top -Hp 3058输入上…...
spring如何用三级缓存解决循环依赖问题
spring为何会出现循环依赖问题? 我们举个会产生循环依赖的例子,如下所示,可以看到AService类中依赖了BService类,同理呢,BService类中依赖了AService类,这就是所谓的循环依赖。 Component("aService&…...
【C#】`Task.Factory.StartNew` 和 `Task.Run` 区别
Task.Factory.StartNew 和 Task.Run 都是用来启动新任务的,但它们有一些关键区别,我们来一条一条讲清楚(配例子 结论)。 🆚 1. 语法和使用目的 对比项Task.RunTask.Factory.StartNew用途简化写法,用于启动…...
谈谈空间复杂度考量,特别是递归调用栈空间消耗?
空间复杂度考量是算法设计的核心要素之一,递归调用栈的消耗问题在前端领域尤为突出。 以下结合真实开发场景进行深度解析: 一、递归调用栈的典型问题 1. 深层次DOM遍历的陷阱 // 危险操作:递归遍历未知层级的DOM树 function countDOMNode…...
【2.项目管理】2.4 Gannt图【甘特图】
甘特图(Gantt)深度解析与实践指南 📊 一、甘特图基础模板 项目进度表示例 工作编号工作名称持续时间(月)项目进度(周)1需求分析3▓▓▓░░░░░░░2设计建模3░▓▓▓░░░░░░3编码开发3.5░░░▓▓▓▓░░…...
Ai工作流工具有那些如Dify、coze扣子等以及他们是否开源
Dify (https://difycloud.com/) 核心定位:专业级 LLM 应用开发平台,支持复杂 AI 工作流构建与企业级管理。典型场景:企业智能客服、数据分析系统、复杂自动化流程构建等。适合需要深度定制、企业级管理和复杂 AI 逻辑…...
【项目】C++同步异步日志系统-包含运行教程
文章目录 项目介绍地址:https://gitee.com/royal-never-give-up/c-log-system 开发环境核心技术为什么需要日志系统同步日志异步日志 知识补充不定参宏函数__FILE____LINE____VA_ARGS__ C使用C使用左值右值sizeof...() 运算符完美转发完整例子sizeof...() 运算符获取…...
Yolo_v8的安装测试
前言 如何安装Python版本的Yolo,有一段时间不用了,Yolo的版本也在不断地发展,所以重新安装了运行了一下,记录了下来,供参考。 一、搭建环境 1.1、创建Pycharm工程 首先创建好一个空白的工程,如下图&…...
Success is the sum of small efforts repeated day in and day out.
(翻译:"成功是日复一日微小努力的总和。") 文章内容: Title: The Silent Power of Consistency (标题翻译:《持续坚持的无声力量》) Consistency is the quiet force that turns asp…...
