ハミング距離(Hamming distance)
ハミング距離(Hamming distance)とは?
ハミング距離は、同じ長さを持つ二つの文字列間の違いを測るための指標です。具体的には、二つの文字列を比較したときに異なる位置の数を数えます。二つの文字列がどれだけ異なるかを示す指標として使われます。
例1:
文字列1: "apple"
文字列2: "apply"
これらの文字列を比較すると、最後の文字が異なります。
したがって、ハミング距離は 1 です。
例2:
文字列1: "12345"
文字列2: "12354"
最後の二文字が異なっています。したがって、ハミング距離は 2 です。
def hamming_distance(str1, str2):
if len(str1) != len(str2):
raise ValueError("Strings must be of equal length")
return sum(c1 != c2 for c1, c2 in zip(str1, str2))
examples = [
("apple", "apply"),
("12345", "12354")
]
# 各例に対してハミング距離を計算し、結果を表示します
for str1, str2 in examples:
distance = hamming_distance(str1, str2)
print(f"Hamming distance : '{str1}' vs '{str2}' = {distance}")