今年春晚
魔术师刘谦表演了
一个与纸牌相关的魔术
精妙的设计带给观众极高的参与感
许多人纷纷拿出家中的扑克牌
跟着刘谦一起“见证奇迹”
“小尼的扑克牌没对上”
也登上了热搜
这个魔术“奇迹”的背后
有着怎样的奥秘?
当春晚还在进行中
北京大学数学科学学院
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时,注意尼格买提的手上动作:
镜头捕捉到插入过程中,原本位于底部的牌面花纹被另一张牌覆盖,也就是说,尼格买提并未按要求将两张牌放入中间位置,从而导致他最终匹配的失败。
听完北大同学的讲解
你理解魔术背后的数学问题了吗?
来源:北京大学、北京大学融媒体中心、北京大学数学科学学院、央视网