ハンミング距離


ハミング距離はデータ伝送エラー制御符号化に用いられ,ハミング距離は2つの(同じ長さ)ワード対応ビットの異なる数を表し,我々はd(x,y)ワードx,y間のハミング距離を表す概念である.2つの文字列に対して異或演算を行い、統計結果が1の個数であれば、この数がハミング距離である.
 
情報論では,2つの等長文字列間のハミング距離は,2つの文字列が対応する位置の異なる文字の個数である.すなわち、ある文字列を別の文字列に変換するために必要な置換文字の数である.例:
1011101と1001001001の間のハミング距離は2である.
2143896と2233796の間のハミング距離は3です.
「toned」と「roses」の間のハミング距離は3
計算:
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))