今年春晚
魔术师刘谦表演了
一个与纸牌相关的魔术
精妙的设计带给观众极高的参与感
许多人纷纷拿出家中的扑克牌
跟着刘谦一起“见证奇迹”
“小尼的扑克牌没对上”
也登上了热搜
这个魔术“奇迹”的背后
有着怎样的奥秘?
当春晚还在进行中
北京大学数学科学学院
2021级本科生刘明昊、李新宇、殷子萦
2022级本科生王秭如、黄天铭、王美潭
2023级本科生潘浩翔、王伟圣
便写出一篇科普文章
从数学的角度
带大家感受这一魔术的魅力
魔术步骤
首先,准备4张扑克牌
跟随魔术步骤
来一起“见证奇迹”
步骤1
将准备好的4张扑克牌
平均撕成两份
并叠在一起
步骤2
将牌堆顶数量为
名字字数的牌
移至牌堆底
步骤 3
将前三张牌放在牌堆中间
并取出牌堆顶的牌
放置在一旁
步骤 4
取出牌堆顶的若干张牌
插入牌堆中间
此处选择的牌数为
南方人取1张,北方人取2张
若不确定是南方人还是北方人取3张
步骤 5
男生扔掉牌堆顶1张
女生扔掉牌堆顶2张
步骤 6
执行“见证奇迹的时刻”循环
每说一个字
就取出牌堆顶一张牌放置在牌堆底
步骤 7
执行如下操作
从牌堆顶开始
每次先将牌堆顶的一张牌放在牌堆底
再扔掉牌堆顶的一张牌
重复以上操作直到只剩一张牌
检查此牌和放置在一旁的牌是否吻合
若吻合,则魔术成功
魔术揭秘
怎么样,你的扑克牌对上了吗?
下面,几位北大同学将按照步骤顺序
一步步为你揭秘背后的逻辑
步骤一
我们令选择的四张扑克牌分别为1234,将他们分别撕开后,产生了标号分别为1234的两套(半张)扑克牌,叠在一起后形成了从上至下标号分别为12341234的扑克牌堆。
步骤二
此时我们可以注意到,无论我们将牌堆顶的多少张牌移到堆底,得到的扑克牌堆编号(从上至下)都只会有以下几种结果:
12341234(名字字数被四整除)
23412341(名字字数模四余一)
34123412(名字字数模四余二)
41234123(名字字数模四余三)
观察以上可能的牌堆,我们可以发现产生的牌堆都具有以下性质:1. 前四张牌和后四张牌的顺序完全一样2. 前四张牌和后四张牌分别是1234的一个轮换
步骤三
从这一步开始,我们只考虑当前牌堆中排在第四及第八的两张牌,记为x,其他牌记为0。那么根据上一步的讨论,可以得到当前的牌堆形如:
000x000x
将前三张放在牌堆中间后,无论这三张放在什么位置,最终产生的牌堆都将是:
x000000x
于是乎,被选择的用于配对的牌就将是x,而另一张与之配对的牌(称为目标牌)将位于牌堆底。
步骤四
在上一步之后,牌堆的编号为000000x,于是,无论本轮中选择牌堆顶多少张牌插入牌堆中,都不会影响目标牌的位置,仍然处于牌堆底部。
步骤五
此时男生的牌堆为:00000x女生的牌堆为:0000x
步骤六
通过尝试可知,在经过步骤六后将得到如下的牌堆:男生:0000x0女生:00x00
步骤七
通过上述揭秘
相信大家不难看出
这个魔术的背后
其实是一个数学上的问题
它被称为约瑟夫问题
约瑟夫问题
设有编号为1,2,......,n的n个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈。再从他的下一个人起重新报数,报到m时停止报数,报m的出圈......按照这个规则进行下来,直到所有人全部出圈为止。求最后留下来的人编号。为了使问题简化,我们考虑n个人编号为0 ~ n-1的情况,每 m 个人退出一个人,我们称之为(n, m)问题。第一个人(即编号为在模n下同余m的人)退出之后,对剩下的 n-1 个人重新编号,则新问题的k号在原问题中对应 k+m 号。因此(n, m)问题的解 j (n, m) = j (n-1, m)+m 且 j (1, m) = 1(模n意义下)。据此,通过递推的方法可以得到 j (n, m)。在实践中,约瑟夫问题一般用代码进行求解。刘谦的魔术中使用的便是 m=2 的特殊情况。
那么主持人小尼
为什么失败了呢?
一起来看看背后的原因
根据上面的证明过程,我们不难发现:在步骤3与步骤4中,如果操作正确,每位主持人手中最底部的一张牌没有变化,而这恰好是步骤7后留下的一张牌。
然而,在进行步骤4时,注意尼格买提的手上动作:
镜头捕捉到插入过程中,原本位于底部的牌面花纹被另一张牌覆盖,也就是说,尼格买提并未按要求将两张牌放入中间位置,从而导致他最终匹配的失败。
听完北大同学的讲解
你理解魔术背后的数学问题了吗?