1122
需用时 02:14
数学魔术:托儿也能如此低调

在下面这个魔术中,主持人将请上三位观众,其中有一位观众是托儿。不过,和别的魔术不同,这个托儿非常低调,他没有任何多余的举动,在游戏规则内就把消息偷偷传递了出去。你能看出这个魔术背后的原理吗?

魔术表演的第一步是把魔术师五花大绑,眼睛套上黑布,放进麻袋里。然后,主持人请第一位观众上台,从一副扑克牌里找 16 张牌,把它们摆成一个 4×4 的扑克方阵,哪些牌正面朝上哪些牌背面朝上由观众自己决定。

/gkimage/0a/om/2t/0aom2t.png

摆好后,主持人说:“为了增加表演的难度,我们把 4×4 的扑克牌方阵增加到 5×5 一共 25 张,魔术师没有意见吧?”麻袋里的魔术师表示没有意见。于是,主持人请上了第二位观众。

第二位观众按照要求对桌子上的扑克牌阵进行了扩充。

/gkimage/77/fp/re/77fpre.png

主持人说,“下面呢,我们再请第三位观众上台。你在这 25 张牌里,随意挑选一张扑克牌,把它翻过来。翻的时候一定要小心,不要留下痕迹,别让魔术师一眼看出来。”

第三位观众稍微考虑了一下,把那张原来背面朝上的方片 5 翻了过来。

/gkimage/c3/f2/n0/c3f2n0.png

“好的,下面就请魔术师开始他的表演”,主持人说。魔术师从袋子里钻出来,走到这堆扑克牌面前,果断地指出了被第三位观众动过的牌,众人惊讶不已。

你能看出哪个观众是托儿吗?

魔术揭秘

这个魔术的关键就是第二位观众,他就是那个“托儿”,另外两位观众都是不明真相的群众。在第一位观众放完扑克牌以后,魔术师的托儿登场。表面上,托儿是在随意地扩展方阵,可实际上他放的一圈牌大有讲究。他需要保证,在最后的 25 张牌里,每一行、每一列正面朝上的扑克牌都是奇数张。

这是总能办到的。首先,在 4×4 方阵的每一行末尾添加一张牌,使得这几行里都各有奇数张正面朝上的牌。再在所得的 4×5 方阵每一列的末尾添加一张牌,使得每一列都有奇数张正面朝上的牌。此时,这个 5×5 方阵的每一列和前四行都有奇数张正面朝上的牌了。由于每一列正面朝上的牌都有奇数张,因此正面朝上的总牌数也是个奇数;同时前四行里正面朝上的牌都是奇数,从而可以推出第五行也有奇数张正面朝上的牌了。

等到第三位观众翻完牌,魔术师上场后,他需要做的就是数一数,看哪一行和哪一列正面朝上的扑克牌张数不是奇数。在上面的例子中,魔术师发现,第四行和第二列中正面朝上的牌不是奇数张,位于它们的交界点处的就一定是那张破坏阵型的牌了。

/gkimage/1b/57/nw/1b57nw.png

用 1 表示正面朝上的牌,用 0 表示背面朝上的牌,魔术可以用上面这个 01 方阵来表示。

奇偶校验法

其实这一招并不是魔术师发明的,这是信息学中传输数据使用的奇偶校验法。不妨让我们用数字 1 表示正面向上的扑克牌,用数字 0 表示背面朝上的牌。在电子通信上,这些 1 和 0 就可以用来传递声音、文字、图片、视频等各种东西,不过数据的传递过程中很可能会出差错,发生某一个数字正好弄反了的情况(相当于第三位观众的操作)。如果给原始信息(第一位观众的扑克牌阵)加上了校验码(第二位观众的做法),接受这些数字信号的一方(相当于魔术师)不但能知道数据有没有传错,还能自己把传错的地方给纠正过来。

不过,如果有不止一个数字被传错,这种自纠错方案就无能为力了。好在,数学家们还发明了一些更强大的自纠错校验编码,可以用于通讯信号更恶劣的场合中。

The End

发布于2011-03-21, 本文版权属于果壳网(guokr.com),禁止转载。如有需要,请联系果壳

举报这篇文章

Albert_JIAO

电子工程专业学生

pic