2024年11月14日 星期四

漢明距離

 漢明距離(Hamming Distance)是用來衡量兩個長度相同的字串之間差異的一種方法。它的計算方式是比對兩個字串中對應位置的字符,並計算不同字符的個數。

例子:

假設有兩個二進位字串:

  • 1011101
  • 1001001

它們的漢明距離是 2,因為在第二位和第四位的字符不同。

主要應用:

  1. 錯誤檢測與修正

    • 在通訊和存儲中,漢明距離被廣泛用於糾錯碼(例如:漢明碼),幫助檢測和修復資料中的錯誤。
  2. 資訊理論

    • 測量二進位字串間的相似度或差異性,用於資料傳輸完整性分析。
  3. 遺傳學

    • 在基因研究中,通過比較 DNA 序列來計算基因變異。

漢明距離的公式:

假設有兩個長度相同的字串 ( A ) 和 ( B ),則漢明距離 ( d ) 的計算方法為:

其中,異或操作  \oplus 表示對應位置是否不同,不同為 1,相同為 0。


題目 1:基本計算

給定兩個等長的二進位字串 10101 和 10011,計算它們的漢明距離。


題目 2:檢查字串長度

撰寫一個函式來計算漢明距離,並在兩個字串長度不相同時回傳錯誤訊息:

  • 輸入:"abcdefg" 和 "abcdezz"
  • 預期輸出:錯誤訊息或提示「字串長度不相同」。

題目 3:DNA 序列分析

在遺傳學中,DNA 是由字母 ATCG 組成。設計一個函式來計算兩條 DNA 序列的漢明距離。例如:

  • DNA1: ATCG
  • DNA2: TAGC
  • 漢明距離為 4(因為每個位置的字母都不同)。

題目 4:找出最相似的字串

給定一組字串和一個目標字串,找出與目標字串漢明距離最小的字串。例如:

  • 字串集合:["1101", "1011", "1000", "1110"]
  • 目標字串:"1010"
  • 結果應回傳:"1011"(漢明距離為 1)。

題目 5:檢查回文性

設計一個函式,計算一個字串與其反轉後字串的漢明距離。如果距離為 0,則表示該字串是回文。例如:

  • 輸入:"radar",輸出:0
  • 輸入:"hello",輸出:2

沒有留言:

張貼留言