D talk
order

汉明距离与我的偶像

  • 林一平

林一平手绘之汉明(左)与夏农(右)。林一平

我有一阵子研究电信编码,最常用的是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,广泛应用于智能农业、智能教育、智能校园等领域/场域。兴趣多元,喜好艺术、绘画、写作,遨游于科技与人文间自得其乐,著有<闪文集>、<大桥骤雨>。