神奇的奇偶性原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lz0499/article/details/82355018

                                                  神奇的奇偶性原理

有如下一种游戏:你找一个人,请他从钱包里抓取一把硬币,随意放在桌子上。然后你转过身去。请对方任选几个硬币翻面,每一次翻面他都要说:“翻面”。最后,请他用手盖住一枚硬币,之后你转过身来,查看下桌面的硬币,你就可以说出对方遮住的那枚硬币是正面还是方面了!很神奇不是!!

这个游戏利用的就是奇偶性原理与奇偶检验。在你转身之前你要下暗地里数数拥有多少枚硬币是正面朝上的,并记住这个数目是奇数还是偶数。如果对方一共翻了偶数次,那么正面朝上的硬币数目是不会有变化的;但是要是翻面的次数为奇数次,那么硬币的奇偶性就会改变。只要看一眼桌子上多少枚硬币是朝上的,你就可以推断出遮住的那枚硬币是正面还是背面。

通信中用奇偶性的原理来检测数据是否在传输的过程中被更改过,并检测究竟是哪一位数据被更改了。美国数学家汉明利用奇偶性原理发明了一种能够检测通信数据错误的区块码。在如下的字符串中,每一个区块abcd都是由0或1组成,在巧妙的三个核对为uvw:

                                                                                      abcduvw

这样一来,就能在侦测到错误时,找出其位置并更正错误。具体原理如下图所示:

字母a位于三个圆的交集,b,c,d分别是两个圆的两两相交的交集。核对为分别放于两圆或三圆交集以外的地方。他们的值也定为0或1.且必须满足一下方程式:

                                                                        a+b+c+d+u=偶数偶数

                                                                        a+b+c+d+v=偶数                              (8)

                                                                        a+b+c+d+w=偶数

假设数据传输的四个区块为:a=0,b=1,c=0,d=1,我们就可以解出如下方程:

可以直接看出结果为:u=1,v=1,w=0。那么这个附加的核对码究竟能够修正错误到何种程度呢?如果在abcduvw字符串中发生了一个错误,则(8)式中有几个总和将会是奇数:

  1. 如果a发生错误,那么三个和将全部是奇数
  2. 如果b、c、d发生错误,那么其中两个会是奇数
  • 错误发生在第一和第三个方程,则代表b出错
  • 错误发生在第一和第二个方程,则代表c出错
  • 错误发生在第二和第三个方程,则代表d出错
  •  
  • 3.如果错误发生在u、v、w的话,只有一个会是奇数。不是第一个就是第二个或第三个方程中。

按照这种方式,(7,4)区块码局可以侦测出每一个错误,并准确的确定位置加以纠正。这个检验码真实巧妙极了!

 参考:《像数学家一样思考》-------克里斯蒂安.黑塞

猜你喜欢

转载自blog.csdn.net/lz0499/article/details/82355018
今日推荐