Hamming

Hamming

簡單

說明

計算兩條 DNA 鏈之間的漢明距離。

你的身體由含有 DNA 的細胞組成。這些細胞會定期耗損,需要汰換,而它們是靠分裂成子細胞來完成這件事。事實上,人體一生平均會經歷大約 10 的 16 次方次細胞分裂!

細胞分裂時,它們的 DNA 也會一起複製。有時在這個過程中會出錯,讓單一片段的 DNA 被編碼成錯誤的資訊。如果我們比較兩條 DNA 鏈,並數出它們之間的差異,就能看出發生了多少錯誤。這就是所謂的「漢明距離」。

我們用 C、A、G 和 T 這幾個字母來讀取 DNA。兩條鏈可能長這樣:

GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^  ^ ^    ^^

它們有 7 處差異,因此漢明距離是 7。

漢明距離在科學上的許多領域都很有用,不只是生物學,所以這是個值得熟悉的詞彙 :)

實作注意事項

漢明距離只對長度相同的序列有定義,因此嘗試在長度不同的序列之間計算它是行不通的。

注意

在 Smalltalk 中,例外是 Exception 子類別的實例。雖然你可以為自己的領域建立專屬的例外,不過只要瀏覽這個階層,就能挑選合適的例外來簡化你的解法。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Pharo Exercism

準備好開始 Hamming 了嗎?

註冊 Exercism,透過 50 個練習 和真人引導來學習並精通 Pharo,全部免費。