Hamming Distance (汉明距离)
作者:互联网
原文链接:https://blog.csdn.net/chouisbo/article/details/54906909
Hamming Distance (汉明距离)
1. 汉明距离的定义
在信息理论中,Hamming Distance 表示两个等长字符串在对应位置上不同字符的数目,我们以d(x, y)表示字符串x和y之间的汉明距离。从另外一个方面看,汉明距离度量了通过替换字符的方式将字符串x变成y所需要的最小的替换次数。
举例说明以下字符串间的汉明距离为:
"karolin" and "kathrin" is 3.
"karolin" and "kerstin" is 3.
1011101 and 1001001 is 2.
2173896 and 2233796 is 3.
2. 汉明距离的意义
对于二进制串a和b来说,汉明距离等于aXORb中1的数目,我们又称其为汉明权重,也叫做population count或popcount。长度为n的二进制字符串通过汉明距离构成了一个度量空间(metric space),我们称其为汉明立方(Hamming Cube)。
3. 汉明距离的计算
python3 简单计算汉明距离的代码如下:
def hammingDistance(s1, s2):
"""Return the Hamming distance between equal-length sequences"""
if len(s1) != len(s2):
raise ValueError("Undefined for sequences of unequal length")
return sum(el1 != el2 for el1, el2 in zip(s1, s2))
Wegner (1960) 提出了一种计算汉明权重(即计算给定整数的二进制表示中1的个数)的算法,通过反复查找并消除最低的非零bit位来实现。
4. 汉明距离的应用
汉明距离主要应用在通信编码领域上,用于制定可纠错的编码体系。在机器学习领域中,汉明距离也常常被用于作为一种距离的度量方式。在LSH算法汉明距离也有重要的应用。
- leetcode 刷题
- Number of 1 Bits
- Hamming Distance
- Total Hamming Distance
原文链接:https://blog.csdn.net/chouisbo/article/details/54906909
标签:Distance,s2,距离,Hamming,汉明,字符串 来源: https://blog.csdn.net/kaspar1992/article/details/100169854