在下面这个魔术中,主持人将请上三位观众,其中有一位观众是托儿。不过,和别的魔术不同,这个托儿非常低调,他没有任何多余的举动,在游戏规则内就把消息偷偷传递了出去。你能看出这个魔术背后的原理吗?
( h6 R9 L* v2 V, ], z* a* l E1 j魔术表演的第一步是把魔术师五花大绑,眼睛套上黑布,放进麻袋里。然后,主持人请第一位观众上台,从一副扑克牌里找 16 张牌,把它们摆成一个 4×4 的扑克方阵,哪些牌正面朝上哪些牌背面朝上由观众自己决定。6 b2 T% Q3 f- k. g$ x
/gkimage/0a/om/2t/0aom2t.png
摆好后,主持人说:“为了增加表演的难度,我们把 4×4 的扑克牌方阵增加到 5×5 一共 25 张,魔术师没有意见吧?”麻袋里的魔术师表示没有意见。于是,主持人请上了第二位观众。
7 F8 k8 u$ r3 Q& o" ?, C* a第二位观众按照要求对桌子上的扑克牌阵进行了扩充。
0 k' Q4 l: {: Q- i& z2 O
/gkimage/77/fp/re/77fpre.png
主持人说,“下面呢,我们再请第三位观众上台。你在这 25 张牌里,随意挑选一张扑克牌,把它翻过来。翻的时候一定要小心,不要留下痕迹,别让魔术师一眼看出来。”
) l9 O- K2 i* A. {1 J( T9 b+ D+ U$ A2 @第三位观众稍微考虑了一下,把那张原来背面朝上的方片 5 翻了过来。
1 q( |, d2 d& L$ v9 u# h6 S# ?
/gkimage/c3/f2/n0/c3f2n0.png
“好的,下面就请魔术师开始他的表演”,主持人说。魔术师从袋子里钻出来,走到这堆扑克牌面前,果断地指出了被第三位观众动过的牌,众人惊讶不已。- k# J# G, d* n* i: \
你能看出哪个观众是托儿吗?( D: i4 j& b6 X. l! c
魔术揭秘这个魔术的关键就是第二位观众,他就是那个“托儿”,另外两位观众都是不明真相的群众。在第一位观众放完扑克牌以后,魔术师的托儿登场。表面上,托儿是在随意地扩展方阵,可实际上他放的一圈牌大有讲究。他需要保证,在最后的 25 张牌里,每一行、每一列正面朝上的扑克牌都是奇数张。; K# ^$ S* I6 A7 T
这是总能办到的。首先,在 4×4 方阵的每一行末尾添加一张牌,使得这几行里都各有奇数张正面朝上的牌。再在所得的 4×5 方阵每一列的末尾添加一张牌,使得每一列都有奇数张正面朝上的牌。此时,这个 5×5 方阵的每一列和前四行都有奇数张正面朝上的牌了。由于每一列正面朝上的牌都有奇数张,因此正面朝上的总牌数也是个奇数;同时前四行里正面朝上的牌都是奇数,从而可以推出第五行也有奇数张正面朝上的牌了。/ h0 X5 n( J. Q( k
等到第三位观众翻完牌,魔术师上场后,他需要做的就是数一数,看哪一行和哪一列正面朝上的扑克牌张数不是奇数。在上面的例子中,魔术师发现,第四行和第二列中正面朝上的牌不是奇数张,位于它们的交界点处的就一定是那张破坏阵型的牌了。
7 s5 t. Q' L8 M% O+ b
/gkimage/1b/57/nw/1b57nw.png
用 1 表示正面朝上的牌,用 0 表示背面朝上的牌,魔术可以用上面这个 01 方阵来表示。% ?$ l8 f1 M% T/ p* g4 A
奇偶校验法其实这一招并不是魔术师发明的,这是信息学中传输数据使用的奇偶校验法。不妨让我们用数字 1 表示正面向上的扑克牌,用数字 0 表示背面朝上的牌。在电子通信上,这些 1 和 0 就可以用来传递声音、文字、图片、视频等各种东西,不过数据的传递过程中很可能会出差错,发生某一个数字正好弄反了的情况(相当于第三位观众的操作)。如果给原始信息(第一位观众的扑克牌阵)加上了校验码(第二位观众的做法),接受这些数字信号的一方(相当于魔术师)不但能知道数据有没有传错,还能自己把传错的地方给纠正过来。
4 A5 Y3 E x; _不过,如果有不止一个数字被传错,这种自纠错方案就无能为力了。好在,数学家们还发明了一些更强大的自纠错校验编码,可以用于通讯信号更恶劣的场合中。南通0 |