汉明距离

在信息论中，两个等长字符串之间的汉明距离（）是两个字符串对应位置的不同字符的个数。换句话说，它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。

汉明重量是字符串相对于同样长度的零字符串的汉明距离，也就是说，它是字符串中非零的元素个数：对于二进制字符串来说，就是1的个数，所以11101的汉明重量是4。
範例
例如：
 1011101与1001001之间的汉明距离是2。
 2143896与2233796之间的汉明距离是3。
 "toned"与"roses"之间的汉明距离是3。

 特性 
对于固定的长度n，汉明距离是该长度字符向量空间上的度量，很显然它满足非负、唯一及对称性，并且可以很容易地通过完全归纳法证明它满足三角不等式。

两个字a与b之间的汉明距离也可以看作是特定运算−的a−b的汉明重量。

对于二进制字符串a与b来说，它等于a 异或b以后所得二进制字符串中“1”的个数。另外二进制字符串的汉明距离也等于n维超正方体两个顶点之间的曼哈顿距离，其中n是两个字串的长度。

 历史及应用 

汉明距离是以理查德·衛斯里·漢明的名字命名的，汉明在误差检测与校正码的基础性论文中首次引入这个概念。在通信中累计定长二进制字中发生翻转的错误数据位，所以它也被称为信号距离。汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。但是，如果要比较两个不同长度的字符串，不仅要进行替换，而且要进行插入与删除的运算，在这种场合下，通常使用更加复杂的編輯距離等算法。

 参考文献 

部分摘自Federal Standard 1037C.

理查德·衛斯里·漢明，误差检测与纠错码（Error-detecting and error-correcting codes）,
Bell System Technical Journal 29 (2):147-160, 1950.

 参见 
 汉明重量
 杰卡德指数
 編輯距離，一般化的汉明距离
 相似
 数值分类学中的相似空间

Category:字符串相似性度量
Category:编码理论
Category:立方體