Huffman&Morse

来源:互联网 发布:神盾局特工第四季知乎 编辑:程序博客网 时间:2024/04/30 16:41

    今天看了几集《Prison Break》,Scofield在寄给Sara的纸鹤中,用了数字来对字母进行
编码,他使用的密码表是手机的键盘。这让我想起了好久前就想了解的摩斯编码。在网上
搜索一下,介绍摩斯编码的内容很多。但大多都是只列出了一个摩斯编码表以及使用方法。
这让我很疑惑摩斯在发明这种使用点和横线的组合(同时也是短音和长音的组合)来表示
不同的字母和数字的时候,是怎么决定每个字母和数字的表示方法的。从以字母表顺序排
序编码表来看,是找不出什么规律的,很乱。直到我看到一个摩斯码的教学网站,
它将字母组成一棵二叉树,在训练的时候,每当听到短音“滴”,就顺着树往右走,每当
听到长音“嗒”,就顺着树往左走,直到一个编码结束,所到达的节点就是该编码所对应
的字母。这跟数据结构中的哈夫曼树编码很相似。哈夫曼树将字母以其使用频率为依据构
成二叉树,使用频率高的字母离树的根近,反之则远。用这种方法编码能使表达量最小,
从而达到压缩数据的目的。难道,早在哈夫曼发明这种数据压缩方法前的一百年,摩斯就
使用了这样的思想来对字母编码,以使得电报在表达相同信息的时候传输量最小?
我马上google到了英文字母使用频率表,一对比摩斯编码的树形表达,果然印证了我的想
法。
    尽管摩斯编码并没有严格遵循我所看到的英文字母使用频率表,比如摩斯编码中O的
编码要比M长一个长音,而实际上O的使用频率要比M高。但是,大部分的编码还是遵循
表达量最小的原则的,毕竟,摩斯的时代,还没有英文字母使用频率统计呢。所以,摩斯
在发明电报的同时,没有将两个他已经有所研究成果的课题给予足够的重视,一就是对
数据压缩的研究,二就是对英文字母使用频率的统计。不过,电报的发明和优化,已经
是很伟大的了。
    我想摩斯和哈夫曼在天堂相遇,一定会会心一笑。

摩斯简介:
塞缪尔.F.B.摩斯,1791年4月27日生于美国麻省的查理镇,1872年4月2日卒于美国纽约。
在1830年以前,他作为一位致力于教育的艺术家,在肖像画方面很有造诣。然而,今天
人们记住他,是因为他是电报的发明者,以及以他的名字命名的编码系统--摩斯电码。

哈夫曼简介:
大卫.A.哈夫曼,1925年生于美国,1999年10月7日在加州医院死于癌症。我们在数据结构
中学习的最优二叉树就是以他的名字命名的--哈夫曼树。

参考资料:
1. http://www.learnmorsecode.com/
2. http://chem.ch.huji.ac.il/~eugeniik/history/morse.html
3. http://www.thocp.net/biographies/huffman_david.html
4. http://www.central.edu/homepages/LintonT/classes/spring01/cryptography/letterfreq.html

 

原创粉丝点击