什么是汉明距离?
两个等长字符串之间的汉明距离,指的是它们在对应位置上符号不相同的个数。这一概念以理查德·汉明(Richard Hamming)的名字命名,是信息论、编码理论和计算机科学中的基础概念。它衡量的是将一个字符串变换为另一个字符串所需的最少替换次数,在检错码和纠错码中有着广泛的应用。
如何使用本计算器
输入两个待比较的字符串——它们可以是二进制序列(例如 1011101)、DNA 碱基序列,或任意文本。计算器会逐个字符进行比对,统计有多少个位置不同。如果两个字符串长度不一致,较长字符串中多出来的每个字符都会被算作一处差异。
计算公式详解
对于两个字符串 a 和 b,汉明距离等于对所有位置 i 求和:当 \( a_i \neq b_i \) 时计为 1,否则计为 0:
$$d(a, b) = \sum_{i=1}^{\min(|a|,|b|)} \left[\, \text{A}_i \neq \text{B}_i \,\right] + \Big|\; |\text{A}| - |\text{B}| \;\Big|$$
计算结果始终是一个非负整数,取值范围在 0(两字符串完全相同)到字符串长度(每个位置都不同)之间。
实例演示
比较 1011101 与 1001001,将它们对齐:
10111011001001
在第 3 位(1 对 0)和第 5 位(1 对 0)处出现差异,因此汉明距离为 2。
常见问题
两个字符串必须等长吗? 经典的汉明距离要求两个字符串长度相等。本工具对长度不等的字符串同样能给出有参考价值的结果:将多出的每个字符都计为一处不匹配。
它支持非二进制文本吗? 支持。任何字符都可以进行比较——字母、数字或各种符号均可。
它与莱文斯坦距离(编辑距离)有什么区别? 汉明距离只统计固定位置上的替换次数,而莱文斯坦距离还允许插入和删除操作。