`
insertyou
  • 浏览: 862259 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

1.莫尔斯编码和布莱叶盲文

阅读更多

虽然还没有看这本书,但是已经有所耳闻这本书的价值。

第一章通过一个真实的例子引入了编码的概念。如果我们要在一个黑暗的地方进行秘密的交流,那么我们通常的手写、口语都是失效的,我们必须自己想一个办法使得交流既方便又安全。

编码,听起来是一个非常深奥的词,实际上其实就是机器和人传递信息的方式,简单的说,就是交流,比如我们平常说的普通话就是一种编码。因此编码随处可见。

我们引入一个很重要的编码,就是莫尔斯编码,他通过手电筒的短闪和长闪进行方便的传输。因为只有两个元素组成,所以也称为二进制码。

方法如下:

1.我们把每个字母、数字、标点符号都用短闪和长闪进行组合,当然我们可以让出现频率高的字符使用较简易的编码,这样可以减少交流的时间。

2.我们需要规定在字符与字符之间、单词与单词之间、重复字符之间的间隔。我们做了如下规定,比如一个短闪占1秒,一个长闪占3秒,字符与字符之间是一个短闪的时间,单词与单词之间用两个长闪的时间,重复字符之间用一个长闪时间,这样我们就能很清晰的区分每一个单词。

当然这也是有缺点的,比如不能区分字母的大小写等。

得出一个结论,就是2是一个神奇的数字,只要有两个不同的事物,就能通过组合成所有的信息。

我们看到莫尔斯编码发现,编码非常简单,只需要通过我们提供的表进行发送即可。但是编码一定会有解码,对于解码来说,就十分困难。因为通过一张凌乱的表进行查找只能通过scan。有没有什么好的方法呢?通过哈夫曼编码解码,我们可以想到通过构造一棵二叉树能够轻易的进行解码。比如向左走是短闪,向右走是长闪,即能使树足够紧促,也能易于解码。

虽然莫尔斯编码很有名,但是在这之前,一个更加著名的编码也就是接下来要介绍的编码:布莱叶盲文。他也是一种二进制编码。他的灵感来源于巴比尔文字系统,方法如下:

在一张厚纸上用铁笔在背面刻画,刻画的部分就会在正面凸起,用点和划组合表示文字。

布莱叶在15岁就创建了这个文字系统,他可以表示字母,数字,标点符号,而且可以表示大小写字母,方法如下:

所有的信息都被编码成一个2乘3的点码单元中的一个或多个凸起的点。就是我们人民币上的那个点。通过对于6个点进行凸和平的组合,进行编码。按照常理,能够编码64种情况。后来我们引入了二级布莱叶盲文,在这个系统中,我们其实能表示的信息远远大于64种,因为我们给出了很多的缩写,并且一个点码单元根据上下文能够表示不同的含义,比如第一个为凸点的点码单元在组合单词时表示为a,在单独一个时表示一个词;我们通过单词间进行间隔一个没有凸点的点码单元进行分割。

在二级布莱叶盲文中,还提供了

(1)数字标识符:在这个点码单元后面的全是数字。

(2)字母标识符:在这个点码单元后面的全是字母。

(3)大写标识符:之后的一个点码单元是大写字母。

像第(1)(2)这种从数字回到字母,从字母回到数字的编码称为“优先码”或“换档码”。

像第(3)种只有对紧跟它的字母有效的编码为“逃逸码”。逃逸码的意思是让你逃逸对编码单调一成不变的解析,转向一种新的解析方法。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics