ハミング距離計算機
同じ長さの二つの文字列で異なる位置の数を数え、位置ごとの類似度をすぐに確認できます。
二つの列を比較
同じ長さの文字列を入力してください。文字、数字、空白、記号をそのまま厳密に比較します。
ハミング距離計算機について
ハミング距離は、同じ長さの二つの文字列で対応する位置がいくつ異なるかを測る指標です。一文字ずつ比較し、一致しないたびに一を加えます。その合計がハミング距離です。距離がゼロなら文字列は同一で、距離が文字列の長さと等しければすべての位置が異なります。数学者リチャード・ハミングにちなんで名付けられ、符号理論とデジタル通信の基礎となる概念です。
例えば hello と hallo は二文字目だけが異なるので、ハミング距離は一です。二進文字列 1011101 と 1001001 は三番目と五番目が異なるため、距離は二です。このツールは位置を一から数えます。最初の文字はインデックスのゼロではなく位置一です。また、一致する位置の数を全体の長さで割り、百分率で位置ごとの類似度を示します。
標準的な定義では、長さが等しいことが必須です。ハミング距離は、ある位置の文字を別の文字に置き換える操作だけを扱います。挿入や削除は後続の位置をずらし、一対一の直接比較を妨げるため対象外です。長さの異なる文字列には、レーベンシュタイン距離などの編集距離が通常適しています。そのため計算機は、黙って埋め合わせたり切り詰めたりせず、不等長の入力を拒否します。
ハミング距離は誤り検出符号と誤り訂正符号で広く使われます。有効な符号語同士には、一定の最小距離を持たせます。受信した語が有効な符号語と少数のビットしか異ならなければ、復号器は発生した可能性のある伝送誤りを推定できます。標準的な前提では、最小距離が三の符号は最大二ビットの誤りを検出し、一ビットの誤りを訂正できます。
この指標は情報理論、暗号、クラスタリング、コンピュータービジョン、生物配列解析にも登場します。ハッシュ比較では異なるビットを数えて雪崩効果を調べ、二値特徴ベクトルは排他的論理和で効率よく比較できます。この計算機は文字を厳密に比較し、大文字と小文字を区別するため、A と a は異なります。空白や句読点も文字として数えます。入力の書式を統一し、二つの列が位置のそろった観測を表すことを確かめてから結果を解釈してください。
ハミング距離の例
| 列 | 距離 | 異なる位置 |
|---|---|---|
| hello と hallo | 1 | 位置 2 だけが異なります。 |
| 1011101 と 1001001 | 2 | 位置 3 と 5 が異なります。 |
| karolin と kathrin | 3 | 位置 3、4、5 が異なります。 |
ハミング距離の計算方法
- 一つ目の列を、比較したいとおりに正確に入力します。
- 文字数が同じ二つ目の列を入力します。
- 「ハミング距離を計算」を選び、不一致位置を数えます。
- 距離、類似度の百分率、一から数えた不一致位置を確認します。
ハミング距離のよくある質問
ハミング距離がゼロとはどういう意味ですか?
対応する位置のすべての文字が一致するという意味です。大文字と小文字を区別した厳密な比較で、二つの列が同一です。
文字列の長さが違っても使えますか?
いいえ。標準のハミング距離は等長の文字列に対して定義されます。挿入や削除を考慮する場合は、レーベンシュタイン距離などの編集距離を使ってください。
大文字と小文字は区別されますか?
はい。大文字と小文字は別の文字として扱います。区別しない分析なら、入力前に文字の大小を統一してください。
類似度の百分率はどう計算しますか?
列の長さから距離を引き、その長さで割ります。100 を掛けると、一致する割合が百分率になります。
ハミング距離は誤り訂正にどう使われますか?
符号化では、有効な符号語同士を既知の最小距離だけ離します。受信側は最も近い有効な符号語を使い、限られた数のビット変化を検出または訂正できます。