通过黑白棋通信

2018-08-09 19:38 更新

思考题

魔术师和他的徒弟在台上表演,下面有3位观众。魔术师蒙着眼睛。

(1)桌上随机排列着7个黑白棋的棋子(图3-4)。魔术师蒙着眼睛,看不到棋子。


(2)魔术师的徒弟在看完这7枚棋子之后,又往右面添了一枚棋子,与其他棋子并排,j这时则有8枚棋子(图3-5)。魔术师依然蒙着眼睛。
(3)这时观众可将其中的1枚棋子翻转,或不翻转任何棋子(图3-6)。

此间,徒弟和观众不发一言,魔术师还是蒙着眼睛,并不知道观众有没有翻转棋子。



(4)魔术师摘下眼罩,观察8枚棋子,然后马上就能说出“观众翻转了棋子”有翻转棋子”,识破观众的行为。

提示

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

思考题答案


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


观众的行动可以是以下(1)~(3)三种情况之一。
(1)观众翻转白棋。那么,黑棋就增加了1枚,即黑棋变为奇数个。
(2)观众翻转黑祺。那么,黑祺就减少了1枚,黑祺也变为奇数个。
(3)观众不翻转祺子。黑棋仍然是偶数个。


魔术师摘下眼罩,马上数出黑棋的个数。如果黑棋为奇数个,就说“观众翻转了棋子”。如果为偶数个,就说“没有翻转棋子”。

这里,徒弟摆放棋子使“黑棋个数为偶数”。若使“黑棋个数为奇数”也可以,只要魔术师和徒弟事先商量好就行。


奇偶校验

我们将魔术师和徒弟表演的戏法想作白棋为2进制的0,黑棋为2进制的1,那么它就和计算机通信中奇偶校验的方法是一样的。

徒弟是发送方,魔术师是接收方。中途翻转黑白棋的观众所扮演的角色就是“干扰通信的噪音(noise)”。


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


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


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

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


魔术师的徒弟添加的1枚棋子,起到了标识目前7枚棋子的摆法属于哪组的作用。有|摆放黑棋或摆放白棋两种情况,以此来区分两个组。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号