几种距离的基础研究下——汉明距离

2016-12-15  本文已影响433人  如烟花非花

二、汉明距离

简介

汉明距离是以理查德·卫斯里·汉明的名字命名的,汉明在误差检测与校正码的基础性论文中首次引入这个概念

这个所谓的距离,是指两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。

维基百科

中文维基:快戳我

英文维基:英文不好别戳我

基本原理

汉明距离有一个最为鲜明的特点就是它比较的两个字符串必须等长,否则距离不成立。

它的核心原理就是如何通过字符替换(最初应用在通讯中实际上是二进制的0-1替换),能将一个字符串替换成另外一个字符串。

维基百科给定了几个样例。(字符下标0为起始下标)

Python实现

python3中已经内置汉明距离函数了,几点说明:

#!/user/bin/env python  
# -*- coding: utf-8 -*-  
  
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))
上一篇 下一篇

猜你喜欢

热点阅读