C
按照海明的理论,纠错编码就是要把所有合法的码字尽量安排在n维超立方体的顶点上,使得任一对码字之间的距离尽可能大。如果任意两个码字之间的海明距离是d,则所有少于等于d-1位的错误都可以检查出来,所有少于d/2位的错误都可以纠正。 如果对于m位的数据,增加k位冗余位,则组成n=m+k位的纠错码。对于2m个有效码字中的每一个,都有n个无效但可以纠错的码字。这些可纠错的码字与有效码字的距离是1,含单个错。这样,对于一个有效的消息总共有n+1个可识别的码字。这n+1个码字相对于其他2m-1个有效消息的距离都大于1。这意味着总共有24(n+1)个有效的或是可纠错的码字。显然,这个数应小于等于码字的所有可能的个数2m。于是,有 2m(n+1)≤2n 因为n=m+k,可得出 m+k+1≤2k 对于给定的数据位m,上式给出了k的下界,即要纠正单个错误,k必须取的最小值。根据上式计算,可得 7+k+1≤2k 所以k=4