MCPで接続 →

計算を入力してください

公式

広告

結果

ハミング距離
2
異なる位置の数
比較した位置数 7
最大の長さ 7

ハミング距離とは?

ハミング距離とは、同じ長さの2つの文字列を比べたときに、対応する記号が異なっている位置の数を指します。リチャード・ハミングにちなんで名付けられたこの概念は、情報理論・符号理論・コンピュータサイエンスの基礎となるものです。一方の文字列を他方へ変えるために必要な「置き換え」の最小回数を表し、誤り検出符号や誤り訂正符号の分野で幅広く使われています。

同じ長さの2つのビット列を縦に並べ、異なる位置を強調表示
ハミング距離は、同じ長さの2つの文字列が異なる位置の数を数えます。

この計算ツールの使い方

比較したい2つの文字列を入力してください。1011101のような2進数の列でも、DNAの塩基配列でも、任意のテキストでも構いません。ツールが1文字ずつ照合し、異なる位置がいくつあるかを数えます。文字列の長さが異なる場合、長いほうの余分な文字はすべて「相違」としてカウントされます。

計算式の解説

2つの文字列abについて、ハミング距離は、各位置\(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以上の整数で、0(完全に一致)から文字列の長さ(すべての位置が異なる)までの範囲に収まります。

具体例で確認

10111011001001を比べてみましょう。並べて見ると次のようになります。

1011101
1001001

3番目の位置(1と0)と5番目の位置(1と0)で値が異なります。したがってハミング距離は2です。

2つの短い単語を1文字ずつ比較し、異なる文字を印付け
2つの文字列を1文字ずつ比較して相違点を数える。

よくある質問

文字列の長さは同じでなければなりませんか? 本来のハミング距離は同じ長さを前提とします。ただし、このツールは長さが異なる場合でも、余分な文字をそれぞれ不一致として数えることで、実用的な答えを返します。

2進数以外のテキストでも使えますか? はい。アルファベット、数字、記号など、あらゆる文字を比較できます。

レーベンシュタイン距離との違いは何ですか? ハミング距離は固定された位置での「置き換え」のみを数えますが、レーベンシュタイン距離は「挿入」や「削除」も許容します。

最終更新: