当前位置: 首页 > news >正文

算法金 | 欧氏距离算法、余弦相似度、汉明、曼哈顿、切比雪夫、闵可夫斯基、雅卡尔指数、半正矢、Sørensen-Dice


大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」

抱个拳,送个礼

在算法模型构建中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距离。 今天,一键拿下九种距离算法。走你~

一、欧氏距离 (Euclidean Distance)

定义与公式

欧氏距离是两个点在 n 维空间中直线距离的度量。它是最常见的距离度量方法之一,用于计算两个向量之间的距离。欧氏距离的公式如下:

应用场景

欧氏距离广泛应用于许多领域,如机器学习、统计学、模式识别和数据挖掘。常见的应用场景包括:

  • 分类算法:如 k 近邻 (k-Nearest Neighbors, KNN) 算法,通过计算新样本与训练样本之间的欧氏距离来进行分类
  • 聚类分析:如 k 均值 (k-Means) 聚类算法,通过计算样本与聚类中心之间的欧氏距离来确定样本所属的簇
  • 图像处理:用于度量图像之间的相似度,如图像检索和图像匹配

优缺点分析

优点:

  • 计算简单:欧氏距离的计算公式简单易懂,且计算量较小,适用于大多数应用场景
  • 直观性强:欧氏距离直接反映了两个点之间的几何距离,具有很强的直观性

缺点:

  • 对尺度敏感:不同维度的数值尺度差异会影响距离的计算结果,需要对数据进行标准化或归一化处理
  • 对异常值敏感:欧氏距离对数据中的异常值非常敏感,异常值可能会显著影响计算结果

欧氏距离(Euclidean Distance)

二、余弦相似度 (Cosine Similarity)

定义与公式

余弦相似度是一种衡量两个向量夹角余弦值的度量,常用于评估两个向量的相似度。公式如下:

应用场景

余弦相似度在许多领域有广泛应用,特别是文本和信息检索领域:

  • 文本相似度计算:在自然语言处理 (NLP) 中,余弦相似度用于计算两个文本或文档之间的相似度,通过比较它们的词频向量
  • 推荐系统:如用户-物品推荐系统,通过计算用户之间或物品之间的相似度来进行推荐
  • 图像相似度计算:在计算机视觉中,用于比较图像特征向量的相似度

优缺点分析

优点:

  • 不受向量长度影响:余弦相似度仅关注向量的方向,而不受向量的长度影响,适用于不同规模的数据
  • 计算简单:公式简单,计算效率高,适合大规模数据处理

缺点:

  • 无法反映数值大小的差异:余弦相似度仅考虑向量的方向,不考虑数值的大小,可能会忽略重要的数值信息
  • 对稀疏向量效果较差:对于稀疏向量(如文本数据中的词频向量),计算结果可能不准确,需要结合其他方法使用

余弦相似度(Cosine Similarity)

防失联,进免费知识星球,直达算法金 AI 实验室 https://t.zsxq.com/ckSu3

更多内容,见免费知识星球

三、汉明距离 (Hamming Distance)

定义与公式

汉明距离用于衡量两个等长字符串之间的不同字符个数。公式如下:

应用场景

汉明距离主要用于以下场景:

  • 错误检测和纠正:在通信和存储系统中,用于检测和纠正数据传输和存储中的错误,如汉明码
  • 基因序列分析:在生物信息学中,用于比较 DNA 和 RNA 序列之间的差异
  • 密码学:在密码分析中,用于比较不同密文之间的差异

优缺点分析

优点:

  • 计算简单:汉明距离的计算过程非常简单,适合大规模数据处理
  • 适用于离散数据:汉明距离特别适用于比较离散数据,如字符串和二进制数据

缺点:

  • 仅适用于等长字符串:汉明距离只能比较长度相同的字符串,对于长度不同的字符串无法计算
  • 不考虑字符位置的重要性:汉明距离只关注字符是否相同,不考虑字符在字符串中的位置重要性

汉明距离(Hamming Distance)

四、曼哈顿距离 (Manhattan Distance)

定义与公式

曼哈顿距离,又称为城市街区距离,是指两个点在 n 维空间中各个坐标轴上的距离之和。公式如下:

应用场景

曼哈顿距离在以下领域有广泛应用:

  • 数据挖掘和机器学习:如在 k 近邻 (KNN) 算法中,用于计算样本之间的距离
  • 图像处理:用于图像像素之间的距离计算,如图像匹配和分割
  • 机器人路径规划:在路径规划中,用于计算机器人在网格地图中的移动距离

优缺点分析

优点:

  • 计算简单:曼哈顿距离的计算公式简单,计算量较小,适用于大多数应用场景
  • 适用于高维数据:在高维空间中,曼哈顿距离比欧氏距离更稳定,不易受到个别维度异常值的影响

缺点:

  • 不适用于所有场景:曼哈顿距离在某些场景中可能不如欧氏距离直观,如需要考虑斜向移动的场景
  • 对尺度敏感:不同维度的数值尺度差异会影响距离的计算结果,需要对数据进行标准化或归一化处理

曼哈顿距离(Manhattan Distance)

抱个拳,送个礼

点击 ↑ 领取

防失联,进免费知识星球,直达算法金 AI 实验室 https://t.zsxq.com/ckSu3

免费知识星球,欢迎加入交流

五、切比雪夫距离 (Chebyshev Distance)

定义与公式

切比雪夫距离,又称为棋盘距离,是指两个点在 n 维空间中各个坐标轴上的最大距离。公式如下:

应用场景

切比雪夫距离在以下领域有应用:

  • 棋盘游戏:如国际象棋中,王每次可以沿任意方向移动一个格子,切比雪夫距离用于计算王移动的步数
  • 仓储和物流:在仓储管理中,用于计算物品在网格仓库中的最远距离

优缺点分析

优点:

  • 计算简单:切比雪夫距离的计算公式简单,计算量小,适用于需要快速计算距离的场景
  • 直观性强:对于某些特定场景,如棋盘游戏,切比雪夫距离具有很强的直观性

缺点:

  • 应用范围有限:切比雪夫距离主要适用于特定场景,不适合所有类型的数据分析
  • 对异常值敏感:切比雪夫距离对数据中的异常值非常敏感,异常值可能会显著影响计算结果

切比雪夫距离(Chebyshev Distance)

六、闵可夫斯基距离 (Minkowski Distance)

定义与公式

闵可夫斯基距离是欧氏距离和曼哈顿距离的广义形式,通过调整参数 𝑝𝑝,可以得到不同的距离度量。公式如下:

应用场景

闵可夫斯基距离广泛应用于数据分析和机器学习中:

  • 分类算法:如 k 近邻 (KNN) 算法中,通过调整 𝑝𝑝 值来选择适合的距离度量
  • 聚类分析:如 k 均值 (k-Means) 聚类算法中,通过调整 𝑝𝑝 值来确定样本与聚类中心之间的距离

优缺点分析

优点:

  • 灵活性高:通过调整参数 𝑝,可以得到不同的距离度量,适应不同的应用场景
  • 计算公式统一:无论是曼哈顿距离还是欧氏距离,均可以通过统一的闵可夫斯基距离公式来计算

缺点:

  • 参数选择困难:在实际应用中,选择合适的 𝑝𝑝 值可能比较困难,需要根据具体问题进行调整
  • 对异常值敏感:闵可夫斯基距离对数据中的异常值较为敏感,可能会影响计算结果

闵可夫斯基距离 (Minkowski Distance)

抱个拳,送个礼

点击 ↑ 领取

七、雅卡尔指数 (Jaccard Index)

定义与公式

雅卡尔指数用于衡量两个集合的相似度,其值为两个集合交集的大小除以并集的大小。公式如下:

应用场景

雅卡尔指数在以下领域有广泛应用:

  • 信息检索:用于评估搜索结果与查询的相关性
  • 图像处理:用于比较图像分割结果与真实分割的相似度
  • 生态学:用于比较不同物种群落之间的相似度

优缺点分析

优点:

  • 适用于集合数据:雅卡尔指数特别适用于比较离散的集合数据
  • 计算简单:雅卡尔指数的计算过程简单,适用于大规模数据处理

缺点:

  • 对稀疏数据效果较差:对于稀疏数据(如文本数据),雅卡尔指数可能不准确,需要结合其他方法使用
  • 无法处理权重信息:雅卡尔指数仅考虑集合中元素的存在与否,不考虑元素的权重信息

雅卡尔指数(Jaccard Index)

八、半正矢距离 (Haversine Distance)

定义与公式

半正矢距离用于计算地球表面上两点之间的最短距离,考虑到地球的球形特性。公式如下:

应用场景

半正矢距离主要用于以下场景:

  • 地理信息系统 (GIS):用于计算地球表面两点之间的最短距离
  • 导航系统:用于GPS导航系统中,计算起点和终点之间的距离
  • 航空和海洋运输:用于计算航线和航程

优缺点分析

优点:

  • 考虑地球曲率:半正矢距离考虑到地球的球形特性,计算结果更准确
  • 适用于长距离计算:对于长距离的两点间距离计算,半正矢距离比直线距离更准确

缺点:

  • 计算复杂:半正矢距离的计算公式较复杂,计算量较大,不适合实时计算
  • 对短距离不敏感:对于短距离的两点间距离计算,半正矢距离与直线距离差异不大

半正矢距离 (Haversine Distance)

防失联,进免费知识星球,直达算法金 AI 实验室 https://t.zsxq.com/ckSu3

免费知识星球,欢迎加入,一起交流切磋

九、Sørensen-Dice 系数

(Sørensen-Dice Coefficient)

定义与公式

Sørensen-Dice 系数用于衡量两个集合的相似度,其值为两个集合交集的大小的两倍除以两个集合大小的总和。公式如下:

应用场景

Sørensen-Dice 系数在以下领域有广泛应用:

  • 信息检索:用于评估搜索结果与查询的相关性
  • 图像处理:用于比较图像分割结果与真实分割的相似度
  • 生态学:用于比较不同物种群落之间的相似度

优缺点分析

优点:

  • 适用于集合数据:Sørensen-Dice 系数特别适用于比较离散的集合数据
  • 计算简单:Sørensen-Dice 系数的计算过程简单,适用于大规模数据处理

缺点:

  • 对稀疏数据效果较差:对于稀疏数据(如文本数据),Sørensen-Dice 系数可能不准确,需要结合其他方法使用
  • 无法处理权重信息:Sørensen-Dice 系数仅考虑集合中元素的存在与否,不考虑元素的权重信息

Sørensen-Dice 系数 (Sørensen-Dice Coefficient)

[ 抱个拳,总个结 ]

各种距离和相似度的对比分析

数学性质对比

  • 欧氏距离:度量空间中两点之间的直线距离,具有平移不变性和对称性
  • 余弦相似度:度量两个向量之间夹角的余弦值,仅考虑向量的方向,不考虑向量的大小
  • 汉明距离:度量两个等长字符串之间不同字符的个数,适用于离散数据
  • 曼哈顿距离:度量空间中两点在各坐标轴上的距离之和,适用于高维数据
  • 切比雪夫距离:度量两个点在各坐标轴上的最大距离,适用于棋盘游戏等特定场景
  • 闵可夫斯基距离:欧氏距离和曼哈顿距离的广义形式,通过调整参数 𝑝𝑝 可得到不同的距离度量
  • 雅卡尔指数:度量两个集合的相似度,计算两个集合交集与并集的比值
  • 半正矢距离:计算地球表面两点间的最短距离,考虑地球的球形特性
  • Sørensen-Dice 系数:度量两个集合的相似度,计算两个集合交集大小的两倍与两个集合大小总和的比值

计算复杂度对比

  • 欧氏距离:𝑂(𝑛),计算简单,适用于大多数应用场景
  • 余弦相似度:𝑂(𝑛),计算简单,适合大规模数据处理
  • 汉明距离:𝑂(𝑛),计算简单,适合离散数据
  • 曼哈顿距离:𝑂(𝑛),计算简单,适用于高维数据
  • 切比雪夫距离:𝑂(𝑛),计算简单,适用于特定场景
  • 闵可夫斯基距离:𝑂(𝑛),通过调整参数 𝑝𝑝,适应不同的应用场景
  • 雅卡尔指数:𝑂(𝑛),计算简单,适用于集合数据
  • 半正矢距离:𝑂(1),公式复杂,适合地理信息系统等场景
  • Sørensen-Dice 系数:𝑂(𝑛),计算简单,适用于集合数据

适用场景对比

  • 欧氏距离:适用于空间距离计算、分类算法(如 KNN)、聚类分析(如 K-Means)
  • 余弦相似度:适用于文本相似度计算、推荐系统、图像相似度计算
  • 汉明距离:适用于错误检测和纠正、基因序列分析、密码学
  • 曼哈顿距离:适用于数据挖掘和机器学习、图像处理、机器人路径规划
  • 切比雪夫距离:适用于棋盘游戏、仓储和物流
  • 闵可夫斯基距离:适用于分类算法、聚类分析
  • 雅卡尔指数:适用于信息检索、图像处理、生态学
  • 半正矢距离:适用于地理信息系统、导航系统、航空和海洋运输
  • Sørensen-Dice 系数:适用于信息检索、图像处理、生态学

核心要点回顾

  • 欧氏距离:计算空间中两点间的直线距离,简单易懂
  • 余弦相似度:计算两个向量间夹角的余弦值,适合文本和向量数据
  • 汉明距离:计算两个等长字符串间不同字符的个数,适合离散数据
  • 曼哈顿距离:计算空间中两点在各坐标轴上的距离之和,适合高维数据
  • 切比雪夫距离:计算两点间各坐标轴上的最大距离,适用于特定场景
  • 闵可夫斯基距离:欧氏距离和曼哈顿距离的广义形式,通过参数调整适应不同场景
  • 雅卡尔指数:计算两个集合的相似度,适合集合数据
  • 半正矢距离:计算地球表面两点间的最短距离,考虑地球曲率
  • Sørensen-Dice 系数:计算两个集合的相似度,适合集合数据

- 科研为国分忧,创新与民造福 -

日更时间紧任务急,难免有疏漏之处,还请大侠海涵 内容仅供学习交流之用,部分素材来自网络,侵联删

[ 算法金,碎碎念 ]

这个神反馈,

有点意思

hhh~

全网同名,日更万日,让更多人享受智能乐趣

如果觉得内容有价值,烦请大侠多多 分享、在看、点赞,助力算法金又猛又持久、很黄很 BL 的日更下去;

同时邀请大侠 关注、星标 算法金,围观日更万日,助你功力大增、笑傲江湖

相关文章:

算法金 | 欧氏距离算法、余弦相似度、汉明、曼哈顿、切比雪夫、闵可夫斯基、雅卡尔指数、半正矢、Sørensen-Dice

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 在算法模型构建中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距…...

项目实战--Spring Boot大数据量报表Excel优化

一、项目场景 项目中要实现交易报表,处理大规模数据导出时,出现单个Excel文件过大导致性能下降的问题,需求是导出大概四千万条数据到Excel文件,不影响正式环境的其他查询。 二、方案 1.使用读写分离,查询操作由从库…...

C#编程技术指南:从入门到精通的全面教程

无论你是编程新手,还是想要深化.NET技能的开发者,本文都将为你提供一条清晰的学习路径,从C#基础到高级特性,每一站都配有详尽解析和实用示例,旨在帮助你建立坚实的知识体系,并激发你对C#及.NET生态的热情。…...

Redis+定式任务实现简易版消息队列

Redis是一个开源的内存中数据结构存储系统,通常被用作数据库、缓存和消息中间件。 Redis主要将数据存储在内存中,因此读写速度非常快。 支持不同的持久化方式,可以将内存中的数据定期写入磁盘,保证数据持久性。 redis本身就有自己…...

学习在 C# 中使用 Lambda 运算符

在 C# 中,lambda 运算符 > 同时用于 lambda 表达式和表达式体成员。 1. Lambda 表达式 Lambda 表达式是一种简洁的表示匿名方法(没有名称的方法)的方法。它使用 lambda 运算符 >,可以读作“转到”。运算符的左侧指定输入参…...

数据结构和算法,单链表的实现(kotlin版)

文章目录 数据结构和算法,单链表的实现(kotlin版)b站视频链接1.定义接口,我们需要实现的方法2.定义节点,表示每个链表节点。3.push(e: E),链表尾部新增一个节点4.size(): Int,返回链表的长度5.getValue(index: Int): E…...

Jdk17是否有可能代替 Jdk8

JDK发展历史和开源 2006年SUN公司开源JDK,成立OpenJDK组织。2009年Oracle收购SUN,加快JDK发布周期。Oracle JDK与OpenJDK功能基本一致,但Oracle JDK提供更长时间的更新支持。 JDK版本特性 JDK11是长期支持版本(LTS)…...

oca和 ocp有什么区别

OCA(Oracle Certified Associate)和OCP(Oracle Certified Professional)在Oracle的认证体系中是两种不同级别的认证,它们之间存在明显的区别。以下是对两者区别的详细解释: 认证级别: OCA&…...

煤矿安全大模型:微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答

煤矿安全大模型————矿途智护者 使用煤矿历史事故案例,事故处理报告、安全规程规章制度、技术文档、煤矿从业人员入职考试题库等数据,微调internlm2模型实现针对煤矿事故和煤矿安全知识的智能问答。 本项目简介: 近年来,国家对煤矿安全生产的重视程度不断提升。为了确…...

C++中的C++中的虚析构函数的作用和重要性

在C中,虚析构函数(virtual destructor)的作用和重要性主要体现在多态和继承的上下文中。了解这一点之前,我们先简要回顾一下多态和继承的基本概念。 继承与多态 继承:允许我们定义一个基类(也称为父类或超…...

机器学习 - 文本特征处理之 TF 和 IDF

TF(Term Frequency,词频)和IDF(Inverse Document Frequency,逆文档频率)是文本处理和信息检索中的两个重要概念,常用于计算一个词在文档中的重要性。下面是详细解释: TF&#xff08…...

因为自己淋过雨所以想给嵌入式撑把伞

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!新手学嵌入式,…...

《C++20设计模式》中单例模式

文章目录 一、前言二、饿汉式1、实现 三、懒汉式1、实现 四、最后 一、前言 单例模式定义: 单例模式(Singleton Pattern)是一种创建型设计模式,其主要目的是确保一个类只有一个实例,并提供全局访问点来访问这个实例。…...

前端技术(说明篇)

Introduction ##编写内容:1.前端概念梳理 2.前端技术种类 3.前端学习方式 ##编写人:贾雯爽 ##最后更新时间:2024/07/01 Overview 最近在广州粤嵌进行实习,项目名称是”基于Node实现多人聊天室“,主要内容是对前端界…...

带电池监控功能的恒流直流负载组

EAK的交流和直流工业电池负载组测试仪对于测试和验证关键电力系统的能力至关重要,旨在实现最佳精度。作为一家客户至上的公司,我们继续尽我们所能应对供应链挑战,以提供出色的交货时间,大约是行业其他公司的一半。 交流负载组 我…...

关于Disruptor监听策略

Disruptor框架提供了多种等待策略,每种策略都有其适用的场景和特点。以下是这些策略的详细介绍及其适用场景: 1. BlockingWaitStrategy 特点: 使用锁和条件变量进行线程间通信,线程在等待时会进入阻塞状态,释放CPU资…...

大数据面试题之HBase(3)

HBase的预分区 HBase的热点问题 HBase的memstore冲刷条件 HBase的MVCC HBase的大合并与小合并,大合并是如何做的?为什么要大合并 既然HBase底层数据是存储在HDFS上,为什么不直接使用HDFS,而还要用HBase HBase和Phoenix的区别 HBase支…...

c#中赋值、浅拷贝和深拷贝

在 C# 编程中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是用于复制对象的两种不同方式,它们在处理对象时有着重要的区别和适用场景。 浅拷贝(Shallow Copy) 浅拷贝是指创建一个新对…...

旧版st7789屏幕模块 没有CS引脚的天坑 已解决!!!

今天解决了天坑一个,大家可能有的人买的是st7789屏幕模块,240x240,1.3寸的 他标注的是老版,没有CS引脚,小崽子长这样: 这熊孩子用很多通用的驱动不吃,死活不显示,网上猛搜&#xff…...

激光粒度分析仪校准步骤详解:提升测量精度的秘诀

在材料科学、环境监测、医药研发等众多领域,激光粒度分析仪以其高精度、高效率的测量性能,成为了不可或缺的测试工具。然而,为了保持其测量结果的准确性和可靠性,定期校准是不可或缺的步骤。 接下来,佰德将为您详细介…...

独一无二的设计模式——单例模式(python实现)

1. 引言 大家好,今天我们来聊聊设计模式中的“独一无二”——单例模式。想象一下,我们在开发一个复杂的软件系统,需要一个全局唯一的配置管理器,或者一个统一的日志记录器;如果每次使用这些功能都要创建新的实例&…...

第二证券:可转债基础知识?想玩可转债一定要搞懂的交易规则!

可转债,全称是“可转化公司债券”,是上市公司为了融资,向社会公众所发行的一种债券,具有股票和债券的双重特点,投资者可以选择按照发行时约定的价格将债券转化成公司一般股票,也可作为债券持有到期后收取本…...

原型模式的实现

1. 引言 1.1 背景 在实际编程中,有时需要频繁创建多个相似但稍有不同的对象。如果采用传统的对象创建方式,容易造成代码冗余,对象重复初始化操作也可能带来大量的的资源消耗(如时间、内存等)。这样不仅降低了灵活性,导致难以适应状态的变化,还降低了代码的可扩展性。 …...

【第二套】华为 2024 年校招-硬件电源岗

1.为了避免 50Hz 的电⽹电压⼲扰放⼤器,应该⽤那种滤波器: A.带阻滤波器 B.带通滤波器 C.低通滤波器 D.⾼通滤波器 2.PID 中的 I 和 D 的作⽤分别是? A、消除静态误差和提⾼动态性能 B、消除静态误差和减⼩调节时间 C、提⾼动态性能和减⼩超调…...

Xilinx FPGA:vivado利用单端RAM/串口传输数据实现自定义私有协议

一、项目要求 实现自定义私有协议,如:pc端产生数据:02 56 38 ,“02”代表要发送数据的个数,“56”“38”需要写进RAM中。当按键信号到来时,将“56”“38”读出返回给PC端。 二、信号流向图 三、状态…...

Spark on k8s 源码解析执行流程

Spark on k8s 源码解析执行流程 1.通过spark-submit脚本提交spark程序 在spark-submit脚本里面执行了SparkSubmit类的main方法 2.运行SparkSubmit类的main方法,解析spark参数,调用submit方法 3.在submit方法里调用doRunMain方法,最终调用r…...

粤港联动,北斗高质量国际化发展的重要机遇

今年是香港回归27周年,也是《粤港澳大湾区发展规划纲要》公布5周年,5年来各项政策、平台不断为粤港联动增添新动能。“十四五”时期的粤港澳大湾区,被国家赋予了更重大的使命,国家“十四五”《规划纲要》提出,以京津冀…...

Chrome导出cookie的实战教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

视频文字转语音经验笔记

自媒体视频制作的一些小经验,分享给大家。 一、音频部分: 1、文字转语音阐述: 微软语音识别 云希-青年男, 0.5-0.8变速 。注:云泽-中年男(不支持长音频录制), 适合郑重场合&#…...

视频融合共享平台LntonCVS统一视频接入平台智慧安防应用方案

安防视频监控平台LntonCVS是一款拥有强大拓展性和灵活部署能力的综合管理平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,同时兼容各厂家的私有协议和SDK,如海康Ehome、海大宇等。LntonCVS不仅具备传统安防视频监控功能&…...

使用Python绘制动态螺旋线:旋转动画效果

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame绘制螺旋线函数主循环 完整代码 引言 螺旋线是一个具有美学和数学魅力的图形。通过编程,我们可以轻松创建动态旋转的螺旋线动画。在这篇博客中,我们将使用Python和Pygame库来实现…...

Symfony实战手册:PHP框架的高级应用技巧

引言 Symfony是一个功能强大且广泛应用于PHP应用程序开发的框架,它提供了许多高级特性和工具,可以帮助开发人员更高效地构建和管理复杂的Web应用程序。以下是Symfony框架的几个关键方面及其高级应用技巧: 1. 路由和控制器 Symfony的路由组…...

TOGAF培训什么内容?参加TOGAF培训有什么好处?考试通过率多少?

TOGAF培训什么内容?参加TOGAF培训有什么好处?考试通过率多少? TOGAF培训哪些内容? 通过本课程,你将掌握TOGAF的理论和实践,理解企业架构的影响,能够评估、启动、设 计、执行新一轮企业和IT架构…...

keepalived HA nginx方案

安装 centos: yum -y install epel-release yum -y install nginx keepalivedkeepalived配置解析 /etc/keepalived/keepalived.conf ! Configuration File for keepalived # 全局变量 global_defs {router_id nginx_ha # 主从保持一致script_user root # 执行健康检查的…...

报错:pathspec ‘xxx‘ did not match any file(s) known to git

在 escode 中进行分支切换时报如下错误 PS > git checkout xxx error: pathspec xxx did not match any file(s) known to git远程分支已经在 gitlab 客户端手动创建,在 escode 中也使用了拉取之类的操作,但是切换分支时依然报错。 解决方案 查看分…...

sed 保持空间命令之 x 的执行逻辑

目录 1. 将模式空间和保持空间的内容互换并打印 2. 将保持空间的内容交换回模式空间 3. 使用保持空间保存状态信息 4. 交换模式空间与保持空间隔行匹配 sed 有两个内置的缓存空间: 模式空间:该空间是 sed 内置的一个缓冲区,是 sed 执行的…...

按位异或^

在 Python 中,a ^ b 表示按位异或运算符。按位异或运算符对整数的每一位进行运算,如果对应位上的两个二进制数字不同,则结果为 1,否则为 0。 示例 a 5 # 二进制: 0101 b 3 # 二进制: 0011result a ^ b print(result) # 输…...

《企业实战分享 · 常用运维中间件》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 近期刚转战 CSDN,会严格把控文章质量,绝不滥竽充数,如需交流&#xff…...

PyCharm 2024.1简介

PyCharm 2024.1 是JetBrains公司发布的Python集成开发环境(IDE)的最新版本。作为一个深受开发者欢迎的工具,PyCharm以其强大的功能和高效的开发体验著称。以下是PyCharm 2024.1的主要特性和改进: 1. **性能提升**: …...

终身免费的Navicat数据库,不需要破解,官方支持

终身免费的Navicat数据库,不需要破解,官方支持 卸载了Navicat,很不爽上干货,Navicat免费版下载地址 卸载了Navicat,很不爽 公司不让用那些破解的数据库软件,之前一直使用Navicat。换了几款其他的数据库试了…...

Spring Boot中的模板引擎选择与配置

Spring Boot中的模板引擎选择与配置 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来聊聊Spring Boot中的模板引擎选择与配置。模板引擎是生成动态网页…...

4、音视频封装格式---FLV

FLV FLV是一种容器封装格式,是由Adobe公司发布和维护的,用于将视频编码流与音频编码流进行封装。对于任意一种封装格式,都有其头部区域与数据区域,在FLV中,称之为FLV Header与Body。 对于FLV Header,一个FL…...

vscode 前行复制到下一行

目录 Ctrl d 会把当前行复制到下一行 步骤1:打开键绑定设置 目录 Ctrl d 会把当前行复制到下一行 步骤1:打开键绑定设置 使用VS Code设置换行 Ctrl d 会把当前行复制到下一行 步骤1:打开键绑定设置 打开 VS Code。按 CtrlShiftP 打开命…...

什么是文档透明加密|好用的文档透明加密软件有哪些?

在当今日益数字化和信息化的时代,数据安全问题愈发受到企业和个人的关注。文档作为信息的重要载体,其安全性不言而喻。为了保障文档的机密性和完整性,文档透明加密技术应运而生。本文将对文档透明加密进行详细介绍,并探讨一些好用…...

XTDrone-固定翼无人机编队跟踪无人车-配置教程

配置使用ROS版本为Neotic 1 配置 1.1 加载固定翼无人机编队跟踪控制工程文件 cp -r ~/XTDrone/coordination/fixed_wing_formation_control ~/catkin_ws/src 1.2 加载一些用到的功能包 sudo apt-get install ros-noetic-serial #根据自己的ROS版本修改 sudo apt-get insta…...

实现高性能、可扩展的实时数据采集系统:go-zero的应用与实践

随着互联网技术的高速发展,数据采集也越来越受到重视,成为企业获取商业价值的重要手段。在实际应用中,我们往往面临着数据量大、并发高、系统响应速度要求高、压力测试等挑战。如何实现高性能、可扩展的实时数据采集系统?本文将介…...

AUTOSAR NvM模块(五)

NvMRbCallbackSignatureAR45 改变回调函数的参数类型。 TRUE&#xff1a;根据AR44及之后版本&#xff0c;回调函数使用NvM_<Multi;Init>BlockRequestType参数类型。详细的函数调用参数请参考回调参数。 FALSE&#xff1a;根据AR43及之前版本&#xff0c;回调函数使用S…...

输出feign调用详细日志

开发新增一个feign调用类&#xff0c;调用另一个微服务的接口&#xff0c;总是报调用失败&#xff0c;想输出下调用的详细日志看看怎么回事。 第一步&#xff1a;查看feign的输出级别。 这个在qlm_config包里&#xff1a; /*** feign 日志记录级别* NONE&#xff1a;无日志记录…...

mac编译r2frida问题解决

在编译 https://github.com/nowsecure/r2frida 时报错: {"category": "error","code": 7006,"file": {"path": "/Users/xxx/Documents/Library/r2frida/src/agent/lib/info/index.ts","line": 494,&qu…...

中介者模式在金融业务中的应用及其框架实现

引言 中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为设计模式&#xff0c;它通过引入一个中介对象来封装对象之间的交互&#xff0c;从而使对象不需要显式地相互引用&#xff0c;从而降低了对象之间的耦合性。在金融业务中&#xff0c;中介者模式常用于实现复…...

【常用知识点-Java】启动新进程

Author&#xff1a;赵志乾 Date&#xff1a;2024-07-05 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 简介 Java内启动一个外部进程&#xff08;操作系统级别的进程&#xff09;&#xff0c;通常使用ProcessBuilder类。其可以方便、灵活…...

百日筑基第九天-单元测试Junit、Log4j 、Log4j 2

百日筑基第九天-单元测试Junit、Log4j 、Log4j 2 Junit Junit是一个开源的 Java 单元测试框架。 单元测试&#xff0c;就是针对最小的功能单元编写测试代码。在 Java 中&#xff0c;最小的功能单元就是方法&#xff0c;因此&#xff0c;对 Java 程序员进行单元测试实际上就是…...

【matlab】信号分解/故障诊断——智能优化算法优化VMD

目录 引言 应用领域 VMD代码实现 智能优化算法优化VMD 引言 VMD&#xff08;变分模态分解&#xff09;是一种新的非线性自适应信号分解方法&#xff0c;它通过变分原理将复杂信号分解为若干个具有不同频率中心和带宽的本征模态函数&#xff08;Intrinsic Mode Functions, …...

菜鸡的原地踏步史(◐‿◑)

leetcode启动&#xff01;(╯‵□′)╯︵┻━┻ 尝试改掉想到哪写哪的代码坏习惯 链表 相交链表 public class Solution {/**ac&#xff08;公共长度&#xff09;b所以 链表A的长度 a c&#xff0c;链表B的长度b ca b c b c a只要指针a从headA开始走&#xff0c;走完再…...

旅游系统(附管理端+前台)PHP源码

一. 前言 今天小编给大家带来了一款可学习&#xff0c;可商用的&#xff0c;旅游系统 源码&#xff0c;支持二开&#xff0c;无加密。支持景点管理&#xff0c;登录&#xff0c;景点预定&#xff0c;意见反馈&#xff0c;统计等功能。详细界面和功能见下面视频演示。 二. 视频…...

带安全启动—Ubuntu系统—手动安装Nvidia驱动

教程1&#xff1a;在启用安全启动的 Fedora 中安装英伟达驱动 教程2&#xff1a;UEFI安全启动模式下安装Ubuntu的NVIDIA显卡驱动 1. 搜索合适的驱动 Nvidia驱动官网 选择这个 驱动(.run)链接 2. 安装必要的软件依赖 CUDA底层用C写的&#xff0c;因此导入编译器 sudo apt i…...

C++STL容器系列(三)list的详细用法和底层实现

目录 一&#xff1a;介绍二&#xff1a;list的创建和方法创建list方法 三&#xff1a;list的具体用法3.1 push_back、pop_back、push_front、pop_front3.2 insert() 和 erase()3.3 splice 函数 四&#xff1a;list容器底层实现4.1 list 容器节点结构5.2 list容器迭代器的底层实…...

算法——链表

一、重新排队——蓝桥杯3255 1.2题解 思路 对1-n的数字进行m次操作得到的结果&#xff08;每次移动的是x&#xff09; 代码 #include <iostream> using namespace std; int main() {// 请在此输入您的代码int n,m;cin>>n>>m;int i1;int a[m][3];for(i;i…...

【好书分享第十三期】AI数据处理实战108招:ChatGPT+Excel+VBA

文章目录 一、内容介绍二、内页插图三、作者简介四、前言/序言五、目录 一、内容介绍 《AI数据处理实战108招&#xff1a;ChatGPTExcelVBA》通过7个专题内容、108个实用技巧&#xff0c;讲解了如何运用ChatGPT结合办公软件Excel和VBA代码实现AI办公智能化、高效化。随书附赠了…...

戴尔台式机win10家庭版操作系统,插上耳机之后听不到声音。(成功解决)

问题描述 戴尔台式机win10家庭版操作系统&#xff0c;外放有声音&#xff0c;插上耳机之后只有滋啦滋啦的声音&#xff0c;听不到音乐&#xff0c;耳机无损坏&#xff08;在其他台式机和手机上都能听到声音&#xff09;。尝试解决办法如下。 尝试解决 尝试一&#xff1a;更新…...

对象解构与迭代器的猫腻?

前言 变量的解构赋值是前端开发中经常用到的一个技巧&#xff0c;比如&#xff1a; // 对象解构 const obj { a: 1, b: 2 }; const { a, b } obj; console.log(a, b)数组解构 const arr [1, 2, 3]; const [a, b] arr; console.log(a, b)工作中我们最经常用的就是类似上面…...

kafka-消费者组-点对点测试

文章目录 1、点对点测试1.1、获取 kafka-consumer-groups.sh 的帮助信息1.2、列出所有的 消费者组1.3、创建消费者1并指定组 my_group11.4、创建消费者2并指定组 my_group11.5、创建消费者3并指定组 my_group11.6、创建生产者发送消息到 my_topic1 主题1.6.1、发送第一条消息ro…...