数学

数学魔术:难倒数学家的表演

有意思的数学魔术 扑克魔术揭秘 和数学结合的魔术。

Albert_JIAO 发表于  2014-01-20 11:53

你有没有看过这样一个扑克牌魔术:魔术师在五六个人好奇的注视下,拿来一叠扑克牌,说:“首先大家检查一下这叠牌是不是不同的花色和点数。”然后对一位观众说:“您可以从这叠牌的上方拿任意数量的牌放到这叠牌的下方(专业一点可以称作切一下牌)。”第一位观众照做之后,把这叠牌递给旁边的人,旁边人同样切一下牌之后,再递给下一个人,轮到最后一个人切完牌的时候,这副牌的顺序已经被完全打乱了。

接下来魔术师会让最后一个人拿走此时这叠牌最上面的一张,再把这叠牌给旁边的人,同样拿走最上面的一张,最后每个人手中都有一张牌。然后魔术师会说:“我看不到你们任何一个人的牌,但现在用意念已经知道你们每个人手中的牌是什么了。”很多人心里一定会想:这也太神奇了吧?魔术师又说:“首先请手中是黑色牌的童鞋站起来。”紧接着他就开始一一说出每个人手中的牌是什么:“你的是黑桃5,你的是梅花8……对于剩下手中是红色牌的童鞋,你的是红桃3,你的是方片……”最后把每个人的牌翻开一看,全部命中,无一错误。

魔术揭秘

这是一个很经典的魔术,不仅可以骗过醉醺醺的酒鬼,就连魔术师俱乐部里的专业魔术师、美国数学学会晚宴上的数学家们都对这个魔术毫无思绪,猜不出其中的原理。

表演的关键点在魔术师号称他已经知道每个人手中的牌是什么的时候。其实他对每个人手中的牌一无所知,在“首先请手中是黑色牌的童鞋站起来”之后他才知道了所有人手中的牌,他利用各位观众手中红牌、黑牌的排列顺序作为线索,推断出大家手中是什么牌。

具体来说,表演这个魔术需要两件道具:一是事先按顺序排列好的一叠牌,可以从一副扑克牌中取出数字1到8共32张,然后把它们按照下面的顺序排列(背面向上,由上到下)

梅花8,梅花A,梅花2,梅花4,黑桃A,方片2,梅花5,黑桃3,方片6,黑桃4,红桃A,方片3,梅花7,黑桃7,红桃7,红桃6,红桃4,红桃8,方片A,梅花3,梅花6,黑桃5,红桃3,方片7,黑桃6,红桃5,红桃2,方片5,黑桃2,方片4,黑桃8,方片8

这样排列的巧妙之处在于:即使被切过牌,也可以保证任意抽出五张连续的牌,其中黑色和红色的排列顺序一定是唯一的(如果黑色牌是0,红色牌是1,这些长度为5的二进制序列一定是互不相同的)。

另外一件道具是一张表格,可以把它藏在手心里,也可以把它藏在一本书里,当然还可以把它死记硬背下来。对于以上的扑克牌排列顺序,对应的表格是这样的:

假如在魔术中,你发现按照拿牌的先后顺序,第二位和第四位观众站起来了,则说明各观众手中的牌分别是红黑红黑红,二进制形式就是10101,按照表格一查,立刻就可以“感知到”这五个人手中的牌分别是方片5、黑桃2、方片4、黑桃8、方片8。

这一神奇魔术背后的数学原理是二进制的De Bruijn 序列,从这样的序列中任意取出相邻n个数(在我们的魔术中n=5),它们的二进制排列一定不相同。下面我们把最开始的那叠牌写成二进制形式(黑色0,红色1),大家可以验证一下是否如此。

0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1

对于同样的32张牌,De Bruijn 序列自然不是唯一的,可以有很多种排列方法,不同的排列方法也对应着不同的“解密表格”。De Bruijn 序列长度也可以更长,随之变大的是每次需要取出相邻牌的个数(n)。对于不同数量的观众,我们需要准备不同数量的牌。5个观众比较适中,如果给一个班级所有人一起表演,尽管效果无比震撼,但是扑克牌估计要用麻袋来装了。

不只是魔术

De Bruijn 序列的奇妙不仅体现在魔术上。我们还可以使用它为机器人做路标定位:将两种不同颜色的小方块排成一条长线摆在机器人行进的路上,机器人只要识别出自己前后的几个方块是什么颜色,既不需要GPS,也不需要高精度探测仪,就可以知道自己走了多少米。

在一列很长的De Bruijn 序列中,中间任意取出n个数字(例如下面序列中的10011),然后向旁边移动一个位置,取出相邻的n个数字(例如下面序列中的00111),它们一定是不相同的,但又有(n-1)个数字是重叠的(0011)。

0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1

0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1

研究人员利用De Bruijn 序列设计了每次可以产生一个用于加密的不同随机数字的简单电子元件“反馈移位寄存器”,上一个随机数字和下一个随机数字之间只改变一个数位和移位一下就可以,电路构造非常简单。

智利的研究人员还曾做过研究,他们设想这个纸牌魔术或许可以和电脑里的数据压缩(例如WINRAR、ZIP、JPEG图片压缩、MPEG视频压缩等)扯上关系

也许你仅仅为这个魔术的表演效果感到很神奇,但绝对想不到这个魔术背后的原理还可以跨界到如此广阔的领域吧。数学与魔术结合,就是会产生如此奇妙的反应。

相关的果壳网小组

参考资料:Magical Mathematics by Persi Diaconis & Ron Graham 

热门评论

  • 2014-01-27 21:55 wshldwps

    我觉得现实会变成这样:“这位先生请切一下牌。嗯……额,先生,我是说切牌。先生。。你不用洗牌的。。”

    [153] 评论
  • 2014-01-20 12:49 卅貓 建筑学专业,分形艺术小组管理员
    引用@we_cry 的话:板!

    如果果壳能让路过的删主题站回复的话我肯定把这种回复都删光……

    [16] 评论
  • 2014-01-20 15:11 sleepykitty

    这个原理很难猜么?我猜到了牌的顺序肯定是事先设计好的(切牌不论多少次,不会打乱每张牌的相邻关系),魔术师是根据哪些人拿着黑色牌来推测每个人拿什么牌,因为每种黑色牌的组合对应着唯一解。当然具体的初始排列我没猜到(也没真正花时间去琢磨),但数学家如果猜到了基本原理,破解初始排列对他们来说应该不难。

    [8] 评论

显示所有评论

全部评论(35)
  • 1楼
    2014-01-20 12:28 王健霖

    赞一个

    来自果壳精选

    [2] 评论
  • 2楼
    2014-01-20 12:49 卅貓 建筑学专业,分形艺术小组管理员
    引用@we_cry 的话:板!

    如果果壳能让路过的删主题站回复的话我肯定把这种回复都删光……

    [16] 评论
  • 3楼
    2014-01-20 13:51 素食者
    引用@卅貓 的话:如果果壳能让路过的删主题站回复的话我肯定把这种回复都删光……

    +1

    [3] 评论
  • 4楼
    2014-01-20 14:40 bluesky365


    挖矿机的既视感。。

    [0] 评论
  • 5楼
    2014-01-20 15:11 sleepykitty

    这个原理很难猜么?我猜到了牌的顺序肯定是事先设计好的(切牌不论多少次,不会打乱每张牌的相邻关系),魔术师是根据哪些人拿着黑色牌来推测每个人拿什么牌,因为每种黑色牌的组合对应着唯一解。当然具体的初始排列我没猜到(也没真正花时间去琢磨),但数学家如果猜到了基本原理,破解初始排列对他们来说应该不难。

    [8] 评论
  • 6楼
    2014-01-20 15:42 或许我爱你

    好!

    来自果壳精选

    [0] 评论
  • 7楼
    2014-01-20 17:12 冰红茶

    这个板子是做加密的还是数据压缩的呢,貌似图片未作来源描述~

    [1] 评论
  • 8楼
    2014-01-20 20:30 M30星团类人型生命体 [0] 评论
  • 9楼
    2014-01-20 21:19 Vermouth乀

    好神奇,有乐子了

    Anything is possible!
    [0] 评论
  • 10楼
    2014-01-21 22:16 Funny_56418

    这不是编程吗……

    来自果壳精选

    [0] 评论
  • 11楼
    2014-01-22 00:06 小泪痕

    程序猿们···你们年会的时候可以玩这个ォ~~~~~

    [1] 评论
  • 12楼
    2014-01-22 20:21 忽然单身的围脖

    不过,要把顺序背下来也不是易事

    [1] 评论
  • 13楼
    2014-01-23 14:16 残崖肆雪
    引用文章内容:这一神奇魔术背后的数学原理是二进制的De Bruijn 序列,从这样的序列中任意取出相邻n个数(在我们的魔术中n=5),它们的二进制排列一定不相同。下面我们把最开始的那叠牌写成二进制形式(黑色0,红色...

    这个序列唯一吗?n比较小的时候可以凑,如果n很大,那有什么方法计算序列吗?还有是否是唯一的?

    [0] 评论
  • 14楼
    2014-01-27 21:55 wshldwps

    我觉得现实会变成这样:“这位先生请切一下牌。嗯……额,先生,我是说切牌。先生。。你不用洗牌的。。”

    [153] 评论
  • 15楼
    2014-01-29 12:14 路路雨007

    记不住啊

    来自果壳精选

    [0] 评论
  • 16楼
    2014-02-20 13:26 coldwind

    数学是扑克魔术中经常用到的原理,可以说所有的近景魔术师和大部分扑克魔术爱好者都懂,也都一眼能看得出来这个魔术的原理。这个例子实在是相当低浅的一个

    如果要举例数学在魔术中的运用,大有比此更好更神奇的例子。

    [0] 评论
  • 17楼
    2014-03-14 22:00 None

    具体来说,表演这个魔术需要两件道具:一是事先按顺序排列好的一叠牌,可以从一副扑克牌中取出数字1到8共32张,然后把它们按照下面的顺序排列(背面向上,由上到下)
    梅花8,梅花A,梅花2,梅花4,黑桃A,方片2,梅花5,黑桃3,方片6,黑桃4,红桃A,方片3,梅花7,黑桃7,红桃7,红桃6,红桃4,红桃8,方片A,梅花3,梅花6,黑桃5,红桃3,方片7,黑桃6,红桃5,红桃2,方片5,黑桃2,方片4,黑桃8,方片8批发
    这样排列的巧妙之处在于:即使被切过牌,也可以保证任意抽出五张连续的牌,其中黑色和红色的排列顺序一定是唯一的(如果黑色牌是0,红色牌是1,这些长度为5的二进制序列一定是互不相同的)。

    [1] 评论
  • 18楼
    2014-03-14 22:01 叽哩呱啦

    在一列很长的De Bruijn 序列中,中间任意取出n个数字(例如下面序列中的10011),然后向旁边移动一个位置,取出相邻的n个数字(例如下面序列中的00111),它们一定是不相同的,但又有(n-1)个数字是重叠的(0011)。

    0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1
    0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1
    ----------
    n真的任意取吗?好吧令n=4

    [1] 评论
  • 19楼
    2014-03-15 13:03 一地小黄人
    引用@wshldwps 的话:我觉得现实会变成这样:“这位先生请切一下牌。嗯……额,先生,我是说切牌。先生。。你不用洗牌的。。”


    我觉得在朋友面前玩儿这个,这才是真相..

    [0] 评论
  • 20楼
    2014-03-15 14:51 奶霸兵
    引用@wshldwps 的话:我觉得现实会变成这样:“这位先生请切一下牌。嗯……额,先生,我是说切牌。先生。。你不用洗牌的。。”


    这就是魔术技巧了,如何不动声色的让人切牌。。。而不是洗牌。。

    [1] 评论
  • 21楼
    2014-03-15 21:09 jswxdzc

    忽悠妹子么?

    [0] 评论
  • 22楼
    2014-03-15 22:50 中中zz

    赞一个

    [0] 评论
  • 23楼
    2014-03-16 10:19 我是一丁

    艾玛。……。………太难背了。。……
    。……。……

    [0] 评论
  • 24楼
    2014-05-05 11:41 小小超

    看着是好牛掰的样子 不过这帖子一个多月没有评论了 怎么还在网页的头条呢!果壳网要落寞了么?

    [0] 评论
  • 25楼
    2014-05-15 06:40 _小花_
    引用@忽然单身的围脖 的话:不过,要把顺序背下来也不是易事

    对!

    [0] 评论
  • 26楼
    2014-06-05 09:59 cosim

    深刻地不觉得这个东西的电路简单 = =…………

    [0] 评论
  • 27楼
    2014-06-05 10:44 Abner1

    补充一个:这个序列还用于编码向量

    [0] 评论
  • 28楼
    2014-08-25 11:50 光亮
    引用@wshldwps 的话:我觉得现实会变成这样:“这位先生请切一下牌。嗯……额,先生,我是说切牌。先生。。你不用洗牌的。。”

    可是,不用水洗的话,我会觉得不干净。

    [0] 评论
  • 29楼
    2014-08-25 12:14 None

    数学家是天才,不是书呆子啦

    [0] 评论
  • 30楼
    2014-08-25 14:17 旅行者爱上时间

    如果别人切牌切的是奇数次,并且每次切的牌数都小于5,那么这个规律不是没用了。(一般故意难为魔术师的人都会这么玩)

    [0] 评论

显示所有评论

你的评论

登录 发表评论

Albert_JIAO
Albert_JIAO 电子工程专业学生,科学松鼠会成员

作者的其他文章

更多科研事,扫码早知道

x 下载
关于我们 加入果壳 媒体报道 帮助中心 果壳活动 免责声明 联系我们 移动版 移动应用

©2017果壳网    京ICP证100430号    京网文[2015] 0609-239号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:13488674940