奇偶校驗典型例題之黑白棋通訊

2021-08-16 16:52:21 字數 895 閱讀 4360

黑白棋通訊

魔術師和他的徒弟上台表演,下面有三個觀眾,魔術師蒙住眼睛。

(1)桌子上隨機排列七個黑白棋子,魔術師蒙著眼睛,看不到棋子。

(2)徒弟才看完這個七枚棋子後,在右面又添了乙個棋子,與其他棋子併排,這時有八枚棋子,魔術師依然蒙著眼睛。

(3)此時觀眾可將一枚棋子翻轉,或不反轉任何棋子,此間,徒弟觀眾一言不發,魔術師還是蒙著眼睛,並不知道觀眾有沒有反動棋子。

(4)魔術師摘下眼罩,觀察八枚棋子,然後馬上就能說出「觀眾翻轉了棋子」或「沒有反轉棋子」。

思考一下魔術師怎麼識破觀眾的行為呢。

tips:

徒弟只放了乙個棋子,而且放旗子的動作在觀眾的動作之前,那麼,徒弟是如何向魔術師傳遞有沒有翻轉棋子的資訊呢?

魔術師和徒弟雖然沒有用語言交流,但是僅僅通過一枚棋子進行交流。思考一下交流的方法。

答案

徒弟在觀眾擺放的7枚棋子中,數出黑棋子的個數,如果黑棋子是奇數,新增黑棋子,如果黑棋子是偶數,新增白棋子。所以最終黑棋子一定是偶數。

所以觀眾只要翻了棋子,一定會使黑棋子的奇偶性發生改變,如不翻動,奇偶性不變。

所以魔術師摘下眼罩,數一數黑棋子的個數就好啦。

奇偶校驗

將這個戲法的白棋子看做是二進位制的0,黑棋子看成1.那麼他就和計算機中的奇偶校驗方法是一樣的。

徒弟是傳送方,魔術師是接收方,中途翻動棋子的觀眾就是干擾通訊的噪音。

徒弟作為傳送方放置的一枚棋子,在通訊領域中被稱為奇偶校驗位。魔術師作為接收方,通過檢查奇偶性來判斷是否因為噪音發生了通訊錯誤。至於奇偶校驗位是設為奇數還是偶數,那個是傳送方和接收方先前商定好的。

java 奇偶校驗

奇校驗 param bytes 長度為8的整數倍 param parity 0 奇校驗,1 偶校驗 return throws exception public static byte parityofodd byte bytes,int parity throws exception if par...

奇偶校驗原理

奇偶校驗原理 通過計算資料中 1 的個數是奇數還是偶數來判斷資料的正確性。在被校驗的資料後加一位校驗位或校驗字元用作校驗碼實現校驗。校驗位的生成方法 奇校驗 確保整個被傳輸的資料中 1 的個數是奇數個,即載荷資料中 1 的個數是奇數個時校驗位填 0 否則填 1 偶校驗 確保整個被傳輸的資料中 1 的...

Parity check(奇偶校驗)

description input multiple test cases.each test case is an integer n 0 n 101000 in a single line.output for each test case,output the answer of f n mo...