北大揭秘春晚刘谦魔术,背后其实是数学问题

2024-02-11 18:48:28

  刘谦在今年春晚表演的魔术引发网友热议,对此,北京大学官方进行了详细解读,并揭秘背后的数学问题 ——“约瑟夫问题”。

  魔术操作步骤:步骤1:将准备好的 4 张扑克牌平均撕成两份,并叠在一起。步骤2:将牌堆顶数量为的牌移至牌堆底。步骤3:将前三张牌放在牌堆中间并取出牌堆顶的牌,放置在一旁。步骤4:取出牌堆顶的若干张牌插入牌堆中间,此处选择的牌数为南方人取 1 张,北方人取 2 张,若不确定是南方人还是北方人取 3 张。步骤5:男生扔掉牌堆顶 1 张,女生扔掉牌堆顶 2 张。步骤6:执行“见证奇迹的时刻”循环,每说一个字,就取出牌堆顶一张牌放置在牌堆底。步骤7:从牌堆顶开始,每次先将牌堆顶的一张牌放在牌堆底,再扔掉牌堆顶的一张牌,重复以上操作直到只剩一张牌,检查此牌和放置在一旁的牌是否吻合。若吻合,则魔术成功。魔术步骤揭秘:我们令选择的四张扑克牌分别为 1234,将他们分别撕开后,产生了标号分别为 1234 的两套扑克牌,叠在一起后形成了从上至下标号分别为 12341234 的扑克牌堆。

  ▲ 此时我们可以无论我们将牌堆顶的多少张牌移到堆底,得到的扑克牌堆编号都只会有以下几种结果:

  观察以上可能的牌堆,我们可以发现产生的牌堆都具有以下性质:

  1. 前四张牌和后四张牌的顺序完全一样

  2. 前四张牌和后四张牌分别是 1234 的一个轮换

  从这一步开始,我们只考虑当前牌堆中排在第四及第八的两张牌,记为 X,其他牌记为 0。那么根据上一步的讨论,可以得到当前的牌堆形如:将前三张放在牌堆中间后,无论这三张放在什么位置,最终产生的牌堆都将是:于是乎,被选择的用于配对的牌就将是 X,而另一张与之配对的牌将位于牌堆底。

  在上一步之后,牌堆的编号为

  此时男生的牌堆为:

  通过尝试可知,在经过步骤六后将得到如下的牌堆:

  男生:0000X0

  女生:00X00

  到此,便完成刘谦本次魔术的步骤揭秘,北京大学进一步解释称这其实是一个“约瑟夫问题”:

  设有编号为 1,2,……,n 的 n 个人围成一个圈,从第 1 个人开始报数,报到 m 时停止报数,报 m 的人出圈。再从他的下一个人起重新报数,报到 m 时停止报数,报 m 的出圈...... 按照这个规则进行下来,直到所有人全部出圈为止。求最后留下来的人编号。 为了使问题简化,我们考虑 n 个人编号为 0 ~ n-1 的情况,每 m 个人退出一个人,我们称之为问题。第一个人退出之后,对剩下的 n-1 个人重新编号,则新问题的 k 号在原问题中对应 k+m 号。因此问题的解 J = J +m 且 J = 1。据此,通过递推的方法可以得到 J 。在实践中,约瑟夫问题一般用代码进行求解。刘谦的魔术中使用的便是 m=2 的特殊情况。

下一篇:红龙推出 M68 有线磁轴机械键盘:8K 回报率,349 元
上一篇:消息称华为 P70 全系 1.5K 曲面屏 + 卫星通信,芯片频率有差别
返回顶部小火箭