什麼是漢明距離?
漢明距離(Hamming distance)指的是兩個等長字串中,對應位置符號相異的數量。這個概念以理查・漢明(Richard Hamming)命名,是資訊理論、編碼理論與電腦科學中的基礎概念。它代表把一個字串改寫成另一個字串所需的最少替換次數,廣泛應用於錯誤偵測碼與錯誤更正碼之中。
如何使用這個計算器
輸入你要比較的兩個字串——可以是二進位序列(例如 1011101)、DNA 鹼基,或任何文字。計算器會逐一比對每個字元,計算出有幾個位置不同。如果兩個字串長度不一致,較長字串中多出來的每個字元都會被算作一處差異。
公式解析
對於兩個字串 a 與 b,漢明距離是把所有位置 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(完全相同)到字串長度(每個位置都不同)之間。
實例演練
比較 1011101 與 1001001,將它們對齊排列:
10111011001001
第 3 位(1 對 0)與第 5 位(1 對 0)出現差異,因此漢明距離為 2。
常見問題
兩個字串一定要等長嗎?傳統的漢明距離要求兩字串長度相同。不過本工具對長度不同的字串仍能提供實用結果,做法是把多出來的每個字元視為一處不相符。
非二進位的文字也適用嗎?適用。任何字元都能拿來比較,包括字母、數字或符號。
它和萊文斯坦距離(Levenshtein distance)有什麼不同?漢明距離只計算固定位置上的替換,而萊文斯坦距離還允許插入與刪除的操作。