通过黑白棋通信对奇偶校验位的理解

案例

魔术师和徒弟在台上表演,下面有3位观众。魔术师蒙着眼睛。
(1)桌上随机摆放着7个黑白棋的棋子,魔术师蒙着眼睛,看不到棋子。
(2)魔术师的徒弟在看完这7个棋子之后,又往右边添加了一枚棋子,与其他棋子并排,这时则有8枚棋子。魔术师依然蒙着眼睛。
(3)这时观众可以将其中的一枚棋子翻转或者不做任何翻转。
此间,徒弟和观众一言不发,魔术师还是蒙着眼睛,并不知道观众有没有翻转棋子。
(4)魔术师摘下眼罩,观察8枚棋子,然后马上说出观众翻转了棋子或者没有翻转棋子,识破观众的行为。

魔术师是如何识破观众的行为呢?

提示

徒弟只是放了一枚棋子,而且放棋子的动作是在观众行动之前,那么徒弟是如何向魔术师传递有没有翻转棋子的信息的呢?
魔术师和徒弟虽然没有进行语言交流,但是仅仅通过一枚棋子进行交流。我们来思考一下交流方法。

答案

徒弟在观众摆放的7枚棋子中,数出黑棋的个数。如果黑棋是奇数,就添加黑棋,如果黑棋是偶数,就添加白棋。
不管哪种情况,在最终的8个棋子中,黑棋的个数一定是偶数。

观众的行为可以是(1)-(3)中的一个:
(1)观众翻动白棋,那么黑棋加一,黑棋变为奇数个;
(2)观众翻动黑棋,那么黑棋减一,黑棋也变为奇数个;
(3)观众不翻动棋子,黑棋仍然是偶数。

魔术师观察,如果是奇数,则被翻动;是偶数,就没有。

奇偶校验

我们将魔术师和徒弟的戏法想做白棋为2进制的0,黑棋为2进制的1,那么它就是计算机通信中奇偶校验的方法一样。
徒弟是发送方,魔术师是接收方。中途翻转黑白棋的观众所扮演的角色就是“干扰通信的噪音(noise)”

徒弟作为发送方放置的一个棋子,在通信领域被称为奇偶校验位(parity bit)。魔术师作为接收方,通过检查摆放棋子的奇偶性(parity)来判断是否因为噪声发生了通信错误。

至于奇偶校验位是偶数还是奇数,那是在发送方和接收方之间的通信规则中所约定的。

奇偶校验位将数字分为两个集合

另外,我们可以这么考虑。7枚棋子的排列总共有2^7=128种,其中一半是(64种)是黑棋是偶数个,另外一种是黑棋是奇数个。128种组合被分为了2组。

魔术师的徒弟添加了一枚棋子,起到了标识目前7枚棋子的摆法属于哪组的作用。有摆放黑棋或者是摆放白棋的两种情况,以此来区分两个组。

你可能感兴趣的:(通过黑白棋通信对奇偶校验位的理解)