北大学子揭秘刘谦魔术你看懂了吗?

发表时间:2024-08-06 13:18:13 来源:拖拉机系列

  今年春晚,刘谦的纸牌魔术让大家印象非常深刻,尼格买提扑克没对上也让大家忍俊不禁。这个魔术“奇迹”的背后有着怎样的奥秘?“北京大学”微信公众号发文揭秘。

  我们令选择的四张扑克牌分别为1234,将他们分别撕开后,产生了标号分别为1234的两套(半张)扑克牌,叠在一起后形成了从上至下标号分别为12341234的扑克牌堆。

  此时我们大家可以注意到,无论我们将牌堆顶的多少张牌移到堆底,得到的扑克牌堆编号(从上至下)都只会有以下几种结果:

  从这一步开始,我们只考虑当前牌堆中排在第四及第八的两张牌,记为X,其他牌记为0。那么根据上一步的讨论,能够获得当前的牌堆形如:

  于是乎,被选择的用于配对的牌就将是X,而另一张与之配对的牌(称为目标牌)将位于牌堆底。

  在上一步之后,牌堆的编号为000000X,于是,无论本轮中选择牌堆顶多少张牌插入牌堆中,都不可能影响目标牌的位置,仍然处于牌堆底部。

  设有编号为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后留下的一张牌。

  镜头捕捉到插入过程中,原本位于底部的牌面花纹被另一张牌覆盖,也就是说,尼格买提并未按要求将两张牌放入中间位置,因此导致他最终匹配的失败。