2024春晚 刘谦互动魔术解析[非严谨数学证明]

本文详细描述了一种通过抽象魔术流程,利用数组操作实现看似复杂的洗牌过程,实际上保持元素不变只改变位序的方法。通过一系列步骤如排序、插入和删除,最终确保特定牌被保留在特定位置。
摘要由CSDN通过智能技术生成

抽象题干

  • 我们先把具象的魔术流程抽象化
首先,牌堆定义为一个数组a。



撕牌:数组扩容,a[4]变a[8]

按名字把牌放到牌尾:将数组前random(1,2,3,4)[看起来是1-8的随机数,但实际上是1-4,这个比较简单,笔者不做解释,大家自己拿纸推导一下即可]元素构成的子数组添加到数组尾,构成新的数组

将前三张牌插入任意位置:将数组前3元素构成的子数组插入后5元素构成的子数组的任意位置

取出第一张牌:取出数组头

按照南北方将牌插入:将数组前random(1,2,3)元素构成的子数组插入剩余元素构成子数组的任意位置

按照性别丢牌:将数组前random(1,2)的元素删除

七轮洗牌:进行七轮头尾插入操作

好运来,霉运走:头尾插入;删除头操作循环直到数组仅剩一元素



结论:该元素和取出的元素数值一致

带着例子解析:

  • 先说结论:从最后的好运来霉运走才算是真正意义上的数论操作,前部操作障眼法偏多(要不怎么说是魔术呢!)
我采用元素不变,变序号的方法进行讲解。


初始状态:
元素:1 2 3 4 1 2 3 4
位序:1 2 3 4 5 6 7 8
数组状态:1 2 3 4 1 2 3 4

按名字排序:(我就以我自己的名字为例了(random = 2),其实这里到底是几个名字根本不重要,因为此时我们的target(后面取出的那一张)还不确定。如果还无法理解,请耐心继续往下看)
元素:1 2 3 4 1 2 3 4
位序:7 8 1 2 3 4 5 6
数组状态:3 4 1 2 3 4 1 2

取三张插入:
这里我们认定插入的位序在插入后数组的第x个位置[x = 2 or 3 or 4 这里忽略直接插头插尾]
(这里我以x = 4来讲)
元素:1     2 3 4     1     2 3 4
位序:(x+3) 8 x (x+1) (x+2) 1 2 3
数组状态:2 3 4 3 4 1 1 2


取出第一张:
!!!关键的来了啊
观察一下上面的数组,你发现了没?我们的第一张,和我们剩余牌堆中一模一样的那张(后文中命名这张牌为target)正好位于首位和末尾!

南北方插入牌:
random(1,2,3)且插入位置不会在最后一张之后,所以完全不影响我们剩余的牌序
数组状态:? ? ? ? ? ? 2(target)

按性别丢牌:
评价是:依然不影响target位置
数组状态:? ? ? ? ? 2(target)
     or  ? ? ? ? 2(target)

七轮交换:
数组状态:? ? ? ? 2(target) ?
     or  ? ? 2(target) ? ?

换牌弃牌循环:
手动推导一下就知道,剩下的肯定是我们的target
  • 数论证明部分留给大佬,蒟蒻就不说话了。

如果您觉得有意思,可否点赞收藏关注一下本蒟蒻!谢谢!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值