打字猴:1.701025863e+09
1701025863
1701025864 010 → 0101011
1701025865
1701025866 011 → 0111100
1701025867
1701025868 101 → 1011010
1701025869
1701025870 110 → 1100110
1701025871
1701025872 100 → 1001101
1701025873
1701025874 111 → 1110001
1701025875
1701025876 经过编码之后,上述信息就会变成:
1701025877
1701025878 1110001 0101011 1011010……
1701025879
1701025880 这些7位数的代码块叫作“代码字”(code word),海明码只允许有这8个代码字。如果接收到的信息中的代码块不是其中之一,就可以肯定有地方出错了。比如,如果接收到1010001,我们就会知道它肯定不正确,因为1010001不是代码字。此外,我们接收到的这条信息与代码字1110001只有一个地方不同,而其他代码字与我们实际看到的错误信息都不可能如此接近,因此,我们可以很有把握地猜测对方想要传输给我们的代码字是1110001,也就是说,原始信息中与之对应的三位数代码块应该是111。
1701025881
1701025882 可能有人认为我们太幸运了。如果接收到的信息与两个代码字都非常接近,我们该怎么办呢?我们的判断就不会那么有把握了吧?但是,这种情况不会发生,我会告诉大家原因。我们现在回过头去研究法诺平面上的那些直线:
1701025883
1701025884 124
1701025885
1701025886 135
1701025887
1701025888 167
1701025889
1701025890 257
1701025891
1701025892 347
1701025893
1701025894 236
1701025895
1701025896 456
1701025897
1701025898 我们把这些直线输入计算机时,该怎么描述它们呢?计算机可以识别的语言只有0与1,因此,我们必须把每一条直线都转换成一连串的0与1,其中,在n处的0表示“n位于该直线上”,而在n处的1则表示“n不在该直线上”。比如,第一行的124可以写成0010111,第二行的135可以写成0101011。
1701025899
1701025900 我们发现,这两个代码块都是海明码的代码字。实际上,海明码中的7个非零代码字正好对应法诺平面上的7条直线。因此,海明码(还包括特兰西瓦尼亚彩票的最佳号码组合)与法诺平面是完全相同的数学研究对象,只不过改头换面了!
1701025901
1701025902 这就是海明码隐藏得很深的几何特性。代码字是法诺平面上可以构成直线的3个点的组合,只要原始的代码字不是0000000,代码块的小变动就等同于在直线上增减一个点,而接收到的错误信息则对应两个点或者4个点。如果我们接收到两个点,我们就会知道如何找到丢失的点,它肯定是连接这两个点的唯一直线上的第三个点。如果我们接收到4个点,构成了“直线加一个点”的信息,该怎么办呢?此时,我们可以推断正确的信息应该是由可以形成直线的3个点组成的。思维缜密的人立刻会问:我们怎么知道只有3个点符合条件呢?为了便于理解,我们给这4个点分别命名为A、B、C、D。如果A、B、C位于一条直线上,那么发送方想要发送的肯定是A、B、C构成的信息。但是,如果A、C、D也位于一条直线上呢?别担心,这是不可能的,因为包含A、B、C的直线与包含A、C、D的直线有A、C两个公共点,但是公理2规定,两条直线只能相交于一个点。换言之,由于几何公理的作用,海明码具有与“重复三次”相同的校正错误的魔力。如果信息在传输过程中被篡改了一个比特,那么接收方肯定可以判断出发送方想要发送的信息。而且,我们无须花费3倍的传输时间,这种新方法在传输信息时,每3个比特的原始信息仅需花费7个比特的传输量,两者之间的比为1∶2.33,效率更高。
1701025903
1701025904 海明码及随后出现的功能更加强大的错误校正码,推动了信息工程学的发展。构建有重重保护和双重检查模式的系统以确保信息传输无误,已经不再是人们追求的目标。海明与香农的研究足以将错误发生的频率降至非常低的程度,无论有什么样的噪声,灵活机动的错误校正码都可以消除它们造成的影响。火星轨道飞船“水手9号”在把火星表面的照片发回地球时使用的阿达玛码,就是具有这种效果的错误校正码。光盘在编码时采用的是里德所罗门码,即使光盘上有擦痕也不会有多大影响。(1990年之后出生的读者,如果对光盘不太了解,可以想一想闪盘驱动器的情况。在这些驱动器中,人们为了防止数据损毁,使用了与里德所罗门码类似的博斯–乔赫里–霍克文黑姆码。)银行的汇款路线号码由一种叫作“检验和”(checksum)的简单编码构成。这种编码不是错误校正码,而是与“每个比特重复两遍”的信息协议比较相似的错误检测码。如果一个数字输入错误,执行汇款交易的计算机可能无法知道我们真正想要输入的数字是几,但是它至少知道出了问题,从而避免我们把钱汇到错误的银行账户中。
1701025905
1701025906 我们不清楚海明是否全盘了解他的这项新技术的适用范围,但是在他准备发表这项研究成果时,他发现贝尔实验室的老板精于此道。
1701025907
1701025908 专利部一定要等到申请了专利之后才同意我发表这个成果……我不相信一堆数学公式也能申请专利。我告诉他们,这是不可能的。但是他们说:“看我们的吧。”他们成功了。从此以后,我知道我对专利法的理解太肤浅了,因为我觉得某些东西应该不能申请专利(或者为这些东西申请专利是不道德的),但他们却常常能成功地申请到专利权。
1701025909
1701025910 数学前进的步伐比专利办公室快。瑞士数学家、物理学家马塞尔·戈利(Marcel Golay)从香农那里听说了海明的想法之后,发明了大量的新编码。但他不知道海明本人已经开发了很多相同的编码并且申请了专利,他发表了自己的编码,导致双方就这项荣誉的归属权产生了纠纷,直到现在尚无定论。贝尔实验室得到了这项专利权,但是,依据1956年一个反垄断协议的条款,他们失去了有偿授权的权利。
1701025911
1701025912 海明码为什么能够奏效呢?要理解这个问题,我们必须反过来思考:在什么情况下,海明码无法发挥作用?
[ 上一页 ]  [ :1.701025863e+09 ]  [ 下一页 ]