神奇的奇偶性原理
????????????????????????????????????????????????? 神奇的奇偶性原理
有如下一種游戲:你找一個人,請他從錢包里抓取一把硬幣,隨意放在桌子上。然后你轉過身去。請對方任選幾個硬幣翻面,每一次翻面他都要說:“翻面”。最后,請他用手蓋住一枚硬幣,之后你轉過身來,查看下桌面的硬幣,你就可以說出對方遮住的那枚硬幣是正面還是方面了!很神奇不是!!
這個游戲利用的就是奇偶性原理與奇偶檢驗。在你轉身之前你要下暗地里數數擁有多少枚硬幣是正面朝上的,并記住這個數目是奇數還是偶數。如果對方一共翻了偶數次,那么正面朝上的硬幣數目是不會有變化的;但是要是翻面的次數為奇數次,那么硬幣的奇偶性就會改變。只要看一眼桌子上多少枚硬幣是朝上的,你就可以推斷出遮住的那枚硬幣是正面還是背面。
通信中用奇偶性的原理來檢測數據是否在傳輸的過程中被更改過,并檢測究竟是哪一位數據被更改了。美國數學家漢明利用奇偶性原理發明了一種能夠檢測通信數據錯誤的區塊碼。在如下的字符串中,每一個區塊abcd都是由0或1組成,在巧妙的三個核對為uvw:
????????????????????????????????????????????????????????????????????????????????????? abcduvw
這樣一來,就能在偵測到錯誤時,找出其位置并更正錯誤。具體原理如下圖所示:
字母a位于三個圓的交集,b,c,d分別是兩個圓的兩兩相交的交集。核對為分別放于兩圓或三圓交集以外的地方。他們的值也定為0或1.且必須滿足一下方程式:
??????????????????????????????????????????????????????????????????????? 偶數
??????????????????????????????????????????????????????????????????????? 偶數????????????????????????????? (8)
??????????????????????????????????????????????????????????????????????? 偶數
假設數據傳輸的四個區塊為:a=0,b=1,c=0,d=1,我們就可以解出如下方程:
可以直接看出結果為:u=1,v=1,w=0。那么這個附加的核對碼究竟能夠修正錯誤到何種程度呢?如果在abcduvw字符串中發生了一個錯誤,則(8)式中有幾個總和將會是奇數:
- 錯誤發生在第一和第三個方程,則代表b出錯
- 錯誤發生在第一和第二個方程,則代表c出錯
- 錯誤發生在第二和第三個方程,則代表d出錯
- ?
- 3.如果錯誤發生在u、v、w的話,只有一個會是奇數。不是第一個就是第二個或第三個方程中。
按照這種方式,(7,4)區塊碼局可以偵測出每一個錯誤,并準確的確定位置加以糾正。這個檢驗碼真實巧妙極了!
?參考:《像數學家一樣思考》-------克里斯蒂安.黑塞
總結
- 上一篇: 老鹰之歌
- 下一篇: android admob sdk,an