介绍汉明距离及计算示例

article/2025/9/20 6:10:35

汉明距离(Hamming distance)是计算两个向量之间不同对应元素数量之和。本文介绍R、Python语言的计算过程。

汉明距离概述

汉明距离是以美国数学家理查德·汉明的名字命名的,他在1950年关于汉明码的论文中提出了该举例度量指标。它被广泛用于多个学科,如信息论、编码理论和密码学。

举例:
“karolin” 和 “kathrin” 两个字符串汉明距离为s 3 (差异字符有: r-t, o-h, l-r),

1011100 和 1001000 汉明距离为 2 (不同二进制数为: 1-0 和 1-0)

31738 和 32337 汉明距离为 3 (不同整数位: 1-2, 7-3, 和 8-7).
在这里插入图片描述

汉明距离在解决很多问题中被证明是非常有用。例如,在编码理论中它被用于错误检测和纠错码;在遗传学中它被用来衡量基因差异;在机器学习算法中用来寻找相似点或区别。

实现函数

假设有两个向量 x = [1, 2, 3, 4] ;y = [1, 2, 5, 7] .
它们之间的汉明距离为2,因为最后两个对应元素不同。

R语言的计算逻辑为:

sum(x != y)

Python的计算过程为:

# 自定义函数实现
def hammingDistance(s1, s2):"""返回等长序列之间的汉明距离"""if len(s1) != len(s2):raise ValueError("Undefined for sequences of unequal length")return sum(el1 != el2 for el1, el2 in zip(s1, s2))

当然也可以使用 scipy.spatial.distance 包 hamming 函数直接计算。

示例1(二值类型)

下面示例计算两个包括二值向量之间的距离:

# R语言实现
# 创建向量
x <- c(0, 0, 1, 1, 1)
y <- c(0, 1, 1, 1, 0)
sum(x != y)# [1] 2

Python代码实现:

from scipy.spatial.distance import hammingx = [0, 1, 1, 1, 0, 1]
y = [0, 0, 1, 1, 0, 0]hamming(x, y) * len(x)# 2.0

示例2(数值类型)

数值类型向量的汉明距离:

# 创建向量
x <- c(7, 12, 14, 19, 22)
y <- c(7, 12, 16, 26, 27)# 计算汉明距离
sum(x != y)# [1] 3

Python代码实现:

from scipy.spatial.distance import hammingx = [7, 12, 14, 19, 22]
y = [7, 12, 16, 26, 27]hamming(x, y) * len(x)# 3.0

示例3(字符串类型)

计算字符串类型汉明距离:

# 创建向量
x <- c('a', 'b', 'c', 'd')
y <- c('a', 'b', 'c', 'r')# 计算汉明距离
sum(x != y)# [1] 1

Python语言实现:

from scipy.spatial.distance import hamming # 定义数组
x = ['a', 'b', 'c', 'd']
y = ['a', 'b', 'c', 'r']hamming(x, y) * len(x)# 1.0

总结

本文介绍了汉明距离,并通过示例介绍R和Python语言的实现过程。


http://chatgpt.dhexx.cn/article/j9K9UORi.shtml

相关文章

汉明距离讲解

文章目录 汉明距离的计算最小汉明距离汉明距离纠错例题 汉明距离的计算 码字A为 10001001 码字B为 10110001 那么不同的字符数为3&#xff0c;汉明距离就是3 不难看出&#xff0c;汉明距离就是两个码不同的数的个数。 最小汉明距离 在一个码组集合中&#xff0c;任意两个码…

距离度量 —— 汉明距离(Hamming Distance)

Python学习系列文章&#xff1a;&#x1f449; 目录 &#x1f448; 文章目录 一、概述二、计算方式三、汉明重量 一、概述 汉明距离&#xff08;Hamming Distance&#xff09;&#xff0c;就是将一个字符串变成另一个字符串所需要的替换次数。 二、计算方式 举个例子&#…

【猿知识】汉明距离(Hamming Distance)

文章目录 汉明距离汉明重量汉明距离计算汉明距离应用例子参考 汉明距离是以理查德卫斯里汉明的名字命名的&#xff0c;汉明在误差检测与校正码的基础性论文中首次引入这个概念。在通信中累计定长二进制字中发生翻转的错误数据位&#xff0c;所以它也被称为信号距离。 汉明距离…

js设置居中

我们在编写html页面的时候&#xff0c;不可避免的会遇到元素居中的问题&#xff0c;水平居中还好说 我们可以通过设置margin: auto;text-align: center;来实现水平居中。垂直居中的话&#xff0c;单个标签我们可以通过设置line-height来实现垂直居中&#xff0c;但是多个标签的…

CSS常见图片居中,文字居中,版心居中集合

1.margin:0 auto&#xff1b;&#xff08;水平居中&#xff09; 适用于&#xff08;块级元素&#xff09; wrapper&#xff08;wrapper只负责版心的效果&#xff09;定义一个固定的宽度&#xff1b;margin&#xff08;外边距&#xff09;左右的值设置为auto。 让带有wrapper…

垂直居中的方法

总结垂直居中的方法 <div class"layout-wrapper"><div class"box1"><h4>垂直居中方法</h4></div></div>.layout-wrapper{width:300px;height:300px;border: 1px solid red; } .box1{height:150px;width:150px;border…

win10任务栏怎样居中win10任务栏居中设定教程

win11系统内置任务栏居中的设置项&#xff0c;但是win10系统没有&#xff0c;倘若win10顾客也想让自己的任务栏居中的话&#xff0c;应当怎样设置呢&#xff1f;你先撤销任务栏锁住&#xff0c;随后新建菜单栏。之后选定一个空白文件夹&#xff0c;之后任务栏就会发生两条竖杠&…

HTML+CSS,让div在屏幕中居中(水平居中+垂直居中)方法总结

最近写网页经常需要将div在屏幕中居中显示&#xff0c;遂记录下几个常用的方法&#xff0c;都比较简单。 水平居中直接加上<center>标签即可&#xff0c;或者设置margin:auto;当然也可以用下面的方法 下面说两种在屏幕正中&#xff08;水平居中垂直居中&#xff09;的方…

css字体居中(css字体居中对齐)

css如何让表格居中 层叠样式表(英文全称&#xff1a;Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。 关于网页设计CSS文本垂直居中的问题 text-align:center;文本居中显示 vertical-align…

css图片居中

相信很多工程师都搜索过css图片居中的方法吧&#xff0c;但总是出现各种各样的问题。其实css图片居中分为很多种情况 第一种&#xff1a;已知父元素的高度&#xff0c;单独设置文字水平垂直居中&#xff0c;我们只需要设置css样式line-hight:同父元素高度&#xff0c;text-alig…

html中如何居中

第一步&#xff1a;打开网页编辑器&#xff0c;新建一个网页文件。 第二步&#xff1a;我们编写两个div标签用来做一个对比演示&#xff0c;既嵌套式div。 第三步&#xff1a;首先我想让最外层的div进行真正意义上的居中——既在浏览器页面水平方向和垂直方向都居中显示。 …

HTML中进行居中设置

html居中的方法如下&#xff1a; 1、打开HTML的编辑器。 2、找到需要居中的图片或者文字。 3、在body里面&#xff0c;设置CSS样式。 4、添加样式为&#xff1a;text-align&#xff1a;center &#xff1b;即可。 超文本标记语言&#xff08;Hyper Text Markup Language&a…

div居中

HTML的div居中 一、margin:0px auto; 给需要居中的div设置一个宽度&#xff0c;然后设置元素的上下外边距为 相等 左右外边距为 auto&#xff0c;比如&#xff0c;margin:0px auto。 则可以实现 div 居中显示。 对于浮动元素&#xff0c;设置其左右外边距为关键字 auto 是无效…

HTML元素居中(文字居中,块居中【垂直/水平居中】)

一、文字、行内元素水平居中 给父级属性设置text-align: center即可 HTML代码: <div><p>p</p></div> <div><span>span</span></div> <div><a href"#">a</a></div>CSS代码&#xff1a; …

html让文字居中

html让文字居中的方法&#xff1a;1、给文本所在标签加CSS属性值“text-align:center”&#xff1b;2、在行内标签或行内块级标签中加CSS属性值“text-align:left”。 本文操作环境&#xff1a;windows7系统、HTML5&&CSS3版、Dell G3电脑。 两种情况&#xff1a;1、文…

word文字居中怎么设置

电脑编辑文档时&#xff0c;想要把文字内容居中显示&#xff0c;那么word怎么居中文字&#xff0c;今天和大家一起学习下。 方法1 1&#xff0c;打开新建的word文档&#xff0c;输入文字。 2&#xff0c;选中文字&#xff0c;然后点击工具栏的“居中对齐”&#xff0c;确定即…

8种css居中实现的详细实现方式了

这是一篇关于居中对齐方式的总结 开篇之前&#xff0c;先问一下大家都知道几种居中的实现方式&#xff1f; 面试时答出来两三个就不错了&#xff0c;就怕面试官还让你继续说。今天就来总结一下这些居中的方式 使用flex布局设置居中。使用flex 时也能通过给子项设置margin: au…

各种居中方法汇总(究极版)

本文部分参考文章&#xff1a;https://github.com/ljianshu/Blog/issues/29 每一部分后另附相关实践代码 前言 本文主要介绍水平居中&#xff0c;垂直居中&#xff0c;还有水平垂直居中各种办法&#xff0c;思维导图如下&#xff1a; 一、水平居中 1.行内元素水平居中 利用…

css居中大全(文字居中、块居中、水平居中、垂直居中)

css居中 一、水平居中 1.块本身水平居中 div{width: 100px;height: 100px;border: 1px solid #000;margin:auto;} <div>我本身水平居中 </div>div的margin不设值怎么表示&#xff1a;不设值&#xff0c;也是auto /*给块居中 上20&#xff0c;左右居中&#xff…

Skipped breakpoint at because it happened inside debugger evaluation

问题描述&#xff1a; 在多线程项目中&#xff0c;在idea中打断点时&#xff0c;有时会遇到下面这种情况&#xff1a; idea左下角出现一行红底或者绿底文字提示&#xff1a; Skipped breakpoint at because it happened inside debugger evaluation 然后我们能感受到的就是…