DTalk
活動+

漢明距離與我的偶像

  • 林一平

林一平手繪之漢明(左)與夏農(右)。林一平

我有一陣子研究電信編碼,最常用的是ASCII碼。後來著迷於喧騰多年的「英國麥田圈圖案」(Crop circle) 。麥田圈號稱是外星人的密碼,解密後會變成ASCII碼。但精研麥田圈後,發現和ASCII碼無關,頗為失望。ASCII涵蓋了一些控制碼(Control Code)。例如end of address (EOA), end of message (EOM), end of transmission (EOT)等等。這些控制碼的「漢明距離」(Hamming Distance)會盡量遠離,以免混淆誤認。

「漢明距離」是美國數學家漢明(Richard Wesley Hamming) 的發明,屬於資訊理論 (Information Theory)範疇,用來量測兩個長度相同的字串的差異程度。簡而言之,「漢明距離」係指同一位置不同字元的數目(the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different)。

漢明距離可用一個簡單的程式來計算。維基百科登載一個以Python語言寫的Hamming distance程式,量測兩個字串s1及s2之距離,如下所示。看不懂的讀者諸君,只要學我,在一旁鼓掌稱讚即可。

def hamming_distance(s1, s2):

     assert len(s1) == len(s2)

     return sum([ch1 != ch2 for ch1, ch2 in zip(s1, s2)])

漢明將他的數學研究成果應用於計算機科學和電信,有重要貢獻。他於1942年獲得伊利諾大學香檳分校的博士學位。1945年他參加曼哈頓計畫,計算物理學家所提供的方程式,以判斷引爆原子彈會否燃燒大氣層。他計算後的結論是,不會燃燒,安心投彈可也。無此疑慮後,原子彈才開始試驗。

二次大戰結束後,他到貝爾實驗室工作整整30年。在這段期間,他曾經和「資訊理論之父」夏農(Claude Elwood Shannon)同一間辦公室。夏農主攻資訊理論(Information Theory),而漢明則專攻編碼理論(Coding Theory),彼此互相砥礪切磋,兩人都成為該領域的巨人。

夏農一直是我輩通訊學者的偶像,我在麻省理工學院電機系看到他的銅像。漢明則一直活躍於電腦界,和莫奇利(John Mauchly)是ACM (Association for Computing Machinery)的共同發起人,漢明後來並成為ACM的總裁。

現為交通大學資工系終身講座教授暨華邦電子講座,曾任科技部次長,為ACM Fellow、IEEE Fellow、AAAS Fellow及IET Fellow。研究興趣為物聯網、行動計算及系統模擬,發展出一套物聯網系統IoTtalk,廣泛應用於智慧農業、智慧教育、智慧校園等領域/場域。興趣多元,喜好藝術、繪畫、寫作,遨遊於科技與人文間自得其樂,著有<閃文集>、<大橋驟雨>。