このツールについて
ハミング距離計算ツールは、同じ長さの2つの入力が異なる位置の数を数えます。これは誤り検出・誤り訂正符号の中核となる指標です。両方の入力は同じ長さでなければなりません。長さが異なる場合、ツールはアラインメントを推測するのではなく、それぞれの長さを添えた明確なエラーを表示します。生の距離、正規化距離(距離 ÷ 長さ、0から1)、比較長、一致した位置の数、そして不一致をすべて赤でハイライトした位置ごとの差分を報告します。
3つのモードが一般的なケースをカバーします。テキストモードでは、文字列をコードポイント単位で比較するため、長さが等しいとは文字数が同じことを意味します。バイナリモードでは、各入力が同じ長さの0と1のみを含むことを検証し、異なるビット位置の数を数えます。これは両者のXORのpopcountと等価です。16進モードでは、両方の入力を同じ桁数の16進数として解析し、ニブル単位でXORして立っているビットを合計し、真のビットレベルのハミング距離を求めます。ここでの長さはビットの総数(16進桁数 × 4)です。
計算は純粋で決定論的、かつ完全にオフラインです。入力した内容がブラウザから出ることはありません。ハミング距離は、2つの符号語を隔てる1ビット誤りの数を測る、固定長のハッシュやフィンガープリントを比較する、バイオインフォマティクスで同じ長さの配列を比較する、といった用途に使われます。等しい長さを必要とするため、文字列の長さが異なる場合は代わりに編集距離を使ってください。
よくある質問
なぜ2つの入力は同じ長さでなければならないのですか?
ハミング距離は同じ長さの列に対してのみ定義されます。片方の位置iをもう片方の位置iと比較するためです。長さが異なると標準的なアラインメントが存在しないため、ツールは両方の長さを添えたエラーを報告します。長さの異なる入力にはレーベンシュタイン(編集)距離を使ってください。
バイナリモードは何を数えますか?
両方の入力が同じ長さの0と1の文字列であることを検証し、異なるビット位置を数えます。これは2つのビット列のXORのポピュレーションカウント(立っているビットの数)と同じです。
16進モードはどのように距離を計算しますか?
各16進桁はニブル(4ビット)です。ツールは2つの値を桁ごとにXORし、すべてのニブルにわたって立っているビットを合計して、ビットレベルのハミング距離を求めます。正規化に使う長さは総ビット数、すなわち16進桁数の4倍です。
正規化距離とは何ですか?
生の距離を比較長で割った値で、0(同一)から1(すべての位置が異なる)の間になります。これにより、長さの異なる入力どうしの不一致率を同じ0〜1のスケールで比較できます。