在前面的三篇文章中,我们完成了约瑟夫问题数学部分的解析,相信已经令数学爱好者们大呼过瘾,让魔术爱好者们一头雾水了,相关内容请戳:

约瑟夫问题与魔术(三)——终极数学推导

约瑟夫问题与魔术(二)——数学结构解析

约瑟夫问题与魔术(一)——数学模型求解

接下来,我们换换脑子,来看看,这样一个独特的数学结构到底可以怎样应用在我们心爱的魔术中。

其实啊,数学部分的解析证明那么精彩,在魔术里面使用的时候看中的点可又不一样了。本质上,约瑟夫的过程可以帮助我们选到一张特定位置的牌,前提是整叠牌的张数和跳过周期,相位,也是给定的。而这个过程本身,可以交给观众来执行,看起来甚至有那么一点不可预测,随机的意思。但是这背后的规律的把握,正是我们比观众多掌握的信息,由此可以把一个本来是个预测或者感应的魔术效果,强化成一个观众自己发现的巧合。这种发生在观众自己手里的效果显然加强了不少,而约瑟夫过程起的作用恰是锦上添花,但核心还是前面的常函数,恒等式和通信函数本身。当然,从表演层面看,这类数学类操作的引入制造的神奇和带来的冗余之间需要有个很好的平衡,比如当张数过多的时候,需要引入一些故事来消磨这里面的无聊感;还可以尝试把这个原理和其他的魔术方法或数学原理多重组合,以达到意想不到的1 + 1 > 2效果。

从本篇开始,我会介绍陆陆续续在近10多年里搜寻到的我所接触过的和约瑟夫问题相关的魔术,并加以改进,欢迎欣赏。今天是第一个魔术。

10张牌的巧合

视频1 10张牌的巧合

历史溯源

这个魔术可追溯原版的年代有些久远了,依稀记得是我小学时候畅游在各种魔术书籍,教学带时候留下的印象。那时候也不知道这叫什么约瑟夫问题,只记得这是个不错的展示牌的方法。没记错的话,第一次学到应该是在张德鑫老师的《图说魔术入门》里面,然后在一次奥数课上,长沙梓园大厦创新学校蔡老师班上的课,坐在第8组第一排的黄金角落位置,拿着牌偷偷地完成了实验,然后还立马和同桌菜哥表演了出来,让他大吃一惊。

原版可能还包括一些其他步骤,但主体没记错的话就是使得观众的选牌被放置在整叠一共10张牌的第5张。然后根据约瑟夫原理,f(10, 2) = 4。注意这里的4是0开始编号的实际上是5,即为所求。到我想写约瑟夫系列的时候捡起这个魔术,显然不太满意这直白的表演,于是开启了改造之路。

改进思路与结果

我想,控制一张牌到中间特定位置的话,通过索引常量或魔术手法方法都不难。但是同时还要10张牌,所受的限制其实就有点多了。那有没有别的策略,能一方面扩大可选区域,再通过一些比如软限制等方法,让选择落在扩大的区域内呢?

先来看可选区域扩大。我们知道,如果是相位为1的k = 2的约瑟夫过程,有f'(10, 2) = 3,也就是可以得到原来过程的前1张。而选择哪种约瑟夫过程,这个观众是无感的,哪样都是个有点奇怪但又精密的过程,哪样也都合理和不合理,就看你怎么表演了(这种多条表演路径的方法在魔术里称为multi-outs)。

现在也只有4,5两个位置可以任选,这离10张牌的10个位置差距还很远,这点自由度并还不能带来什么真正的效果上能随意插入的效果。此时,一个很直接的想法就是,扑克牌如果翻过来数(和做一次Reverse操作的效果相同,但它的实现是直接改变了所有相邻前后关系的方向,而前者只是数的时候倒过来了,属于外部观察和行为的变化,并非扑克牌本身的属性,却可以起到相同的作用),相当于倒序,那么编号4,5就变成了7和6。这下厉害了,恰好还连续,4~7这4个连续的范围都搞定了,因此,只要观众插入位置距离顶部或底部至少3张就可以了。

最后我们需要看看,怎么用魔术方法让观众以“随便选择位置”的印象而实际是给定了范围的结果。而作为魔术设计,一定要每一步都天衣无缝才行。如果真的放在了1,2,3,8,9,10这6个位置怎么办?当然可以通过一些台词的引导来完成,比如先发个两张,再喊停,最后3张直接一次性落下去来隐性软控制。但是,借着这里的特殊性,我又找到了别的方法来硬核控制。

直观上看,取了任意不在4~7范围内的牌,如果在这个环上不断做模10加4以内的加法或减法,其结果不可能跨过一个长度为4的范围,比如4~7。举例来说,如果取10,那么每次减一个4以内的数,当它跨过4~7以前,一定曾经落在这个区间内过,而魔术师选择在那一刻停下选择即可(又是魔术师暗中决定了分支路径的multi-outs方法)。而且,选牌位置距离该区间最近点的最大有向距离才6(4 - 8 == 6(mod 10)),如果你可以灵活调整数牌的方向,那最大距离就只有3了,即4 - 1 = 10 - 7 = 3。因此,这个过程在没有连续两次都是1的情况下,不会超过2次,就能移动到正确的区间范围内。

后来我还有了一个想法,这个平移的数值范围能不能扩大到10以内?有了确定的选择和距离区间的长度以后,再找到合适的方案来执行,比如COAT,比如单纯的数牌或切牌等等,其中COAT有个很好的常量性质还可以保证数值过大时候的over-coat不对原结果产生影响。具体怎么实现,先留给大家来思考。

数学推导

下面,我们用数学语言来具体描述一下上述谈到的性质:

设数列{an}的每一项ai取自1:M的整数,取任意大小为M的连续范围S:(S + M - 1),S >= 1。{Sn}是{an}的前n项和数列,若存在i < j,使得Si < S,Sj > S + M - 1,则必存在k,有Sk in S:(S + M - 1)。

其实这是一个很显然的结论。你想象有一只青蛙,每一步只能最多跳M级台阶,现在前面有一条有M级台阶宽的小溪,那么不管它怎么安排跳跃过程,都是跳不过这条河的。

证明的话,可以用反证法。由原假设,我们取i_max = argmax(i, Si < S),j_min = argmin(j, Sj > S + M - 1),假设保证了这里有解,且i <= i_max < j_min <= j, S(j_min) - S(i_max) > M

假设k不存在,那么i_max + 1 = j_min,否则,取k in [i_max + 1, j_min - 1]就有解。但是当j_min - i_max = 1的时候,S(j_min) - S(i_max) = a(j_min) <= M,这与反证假设矛盾。故原命题得证。

在扑克牌上,这些加减法就对应切牌(cut)或者数牌(count),只不过是模加法罢了,但需要的性质显然是一样满足的,推导也几乎一样。不同的是,结论可以强化为,每走过一个周期的长度,就一定至少进入过那个范围1次,这个点在这个魔术里还没用到。

在这个魔术的设定里,观众选择的位置距离这个范围最大距离也就是3,我们通过正还是反数牌决定加减,再通过数值大小决定数牌次数,最后控制在特定位置以后,通过翻转和初始相位调整的约瑟夫过程,去构造最后那个必然出现的结果。

结束语

如果按照三类数学原理中的常函数,恒等式和通信编码函数来分类,本魔术应该是通信编码函数的过程。我们识别了观众的动作,并把它转化为了后续不同的行动。但是,由于这里的不同动作的每一项,观众都无从判断是否足够特殊和有信息量,感觉就像是预设的流程一样,使得最后构造出的这个常数位置,效果变化为巧合的同时,过程中看不出任何和前面观众选择有联系的通信函数。原因是,一方面,数观众放置在第几张,是一个暗通信,本就很隐蔽;另外,对此通信的编码处理,也通过上述跳蛙原理和约瑟夫过程来包装得完全找不到函数构造的逻辑。只要不重复表演,这几乎就是个不可能复现的奇迹,就像,只传递过一次的密码一样,无从破译。

这便是数学和魔术结合的美。

下一篇要讲解的魔术,先睹为快:

视频2 自我匹配的奇迹

我们是谁:

MatheMagician,中文“数学魔术师”,原指用数学设计魔术的魔术师和数学家。既取其用数学来变魔术的本义,也取像魔术一样玩数学的意思。文章内容涵盖互联网,计算机,统计,算法,NLP等前沿的数学及应用领域;也包括魔术思想,流程鉴等魔术内容;以及结合二者的数学魔术分享,还有一些思辨性的谈天说地的随笔。希望你能和我一起,既能感性思考又保持理性思维,享受人生乐趣。欢迎扫码关注和在文末或公众号留言与我交流!

扫描二维码

关注更多精彩

约瑟夫问题与魔术(三)——终极数学推导

每一个魔术,都应该是一场直播的微电影!

一次刨根问底的收获——从一道微积分题说开去

序列周期性与魔术(六)——魔术欣赏与解析续集

《猫和老鼠》里的魔术艺术(五)——一定要合理!


点击阅读原文,往期精彩不错过!

约瑟夫问题与魔术(四)——魔术《10张牌的巧合》相关推荐

  1. 逻辑题:给一个瞎子52张扑克牌,并告诉他里面恰好有10张牌是正面朝上的。要求这个瞎子把牌分成两堆,使得每堆牌里正面朝上的牌的张数一样多。瞎子应该怎么做?

    一道很有意思的逻辑推理题,第一次遇到还是挺难以理解这个题的解题思路的,容易陷入误区,下面是我的个人解析思路: 题目:给一个瞎子52张扑克牌,并告诉他里面恰好有10张牌是正面朝上的.要求这个瞎子把牌分成 ...

  2. 用排列组合来编码通信(五)——魔术《5张牌的预言》的魔术拓展之《Eigen's Value》...

    早点关注我,精彩不错过! 在前面的文章中,我们已经讲到了用托来进行编码通信的系列,相关内容请戳: 用排列组合来编码通信(四)--魔术<5张牌的预言>的数学拓展 用排列组合来编码通信(三)- ...

  3. 用排列组合来编码通信(六)——魔术《5张牌的预言》的魔术拓展之《My Fitch Four Glory》...

    早点关注我,精彩不错过! 在上一篇中,我们介绍了<5张牌的预言>这个魔术的一个精彩的扩展表演<Eigen's Value>,把这个魔术和数学性质的结合做到了极致,相关内容请戳: ...

  4. 【必读】10张图告诉你传统企业拥抱互联网的正确姿势

    咖啡注:前面pmcaff推荐过几篇文章,大家都能感受到传统企业向互联网企业转型已是大势所趋,那么传统企业拥抱互联网都有哪些相同路径?下面的10张图将理论与案例结合,或许会给我们带来一些启发. 互联网进 ...

  5. Java黑皮书课后题第7章:**7.24(仿真:优惠券收集问题)优惠券收集问题是一个经典的统计问题。编写程序,模拟要得到四张不同花色的牌所需要的选取次数,然后显示选中的四张牌

    **7.24(仿真:优惠券收集问题)优惠券收集问题是一个经典的统计问题.编写程序,模拟要得到四张不同花色的牌所需要的选取次数,然后显示选中的四张牌 题目 题目描述与运行示例 破题:花色与数字 代码 题 ...

  6. 初中计算机课师徒结对活动记录,师徒结对活动记录表10张(师傅尚积东徒弟丁明路)(备课6节听课4节).doc...

    师徒结对活动记录表10张(师傅尚积东徒弟丁明路)(备课6节听课4节).doc 2014年度师徒结对活动记录表(一)活动方式交流探讨活动地点教导处活动时间2014.4.11活动内容帮助徒弟:提高认识青年 ...

  7. 阿里数据中台建设之道,阿里专家10张图从理念到实践,干货解读!

    文| 技术领导力社区 编辑| Emma 阿里数据中台建设过程.方法论.主要核心的产品.技术架构等等,对技术圈来说一直非常神秘.并且,阿里已经将中台建设方法论形成了解决方案,向行业输出,这也导致了阿里中 ...

  8. 集齐ABCI四张牌,TA“召唤”了网安新风向!

    不久之前,网友们得知了一则悲伤的消息,风靡全球的漫画以及同名动画片<樱桃小丸子>的作者因癌症去世. 得知后,各大平台的粉丝童鞋们纷纷表示"再见!美好的童年回忆",朋友圈 ...

  9. 10张PPT干货,教你写出一流的文案

    想写出一流的文案,最关键的是要掌握背后最核心的方法论. 如何写出一流的文案? 这一直是很多产品运营的朋友苦恼的问题.大家在写文案的时候,很容易陷入一个误区,认为好的文案或者说有创意的文案都是通过发散思 ...

最新文章

  1. 基于交换技术的网络中,全双工主要运行在?( 内有答案与详解)
  2. HDU 4738 Caocao‘s Bridges(桥、任何位运算一定都要加括号、因为有重边所以用前向星)
  3. java删除有序数组中的重复元素_java去除已排序数组中的重复元素
  4. 【Andorid X 项目笔记】动态设置ViewPager的Adapter问题(2)
  5. 【深入理解JVM】JVM的五大运行时数据区域
  6. 测试人如何开展第一份工作?
  7. 机器学习基础(五十七)—— 监督学习、无监督学习
  8. 进化计算-进化策略(Evolutionary Strategies,ES)前世今生与代码共享
  9. 用计算机遥感技术图片,遥感图像处理
  10. 发光二极管pcb封装图画法_干货 | 从焊接角度谈画PCB图时应注意的问题
  11. php 模拟登陆新浪微博,[Javascript] 爬虫 模拟新浪微博登陆
  12. 爬虫 + 数据分析 - 7 CrawlSpider(全站爬取), 分布式, 增量式爬虫
  13. mysql 累乘_oracle sql语句实现累加、累减、累乘、累除
  14. 线性代数中自由变量为什么取0和1?
  15. android平板改成电视盒子,【当贝市场】废旧手机改造成电视盒子详细教程
  16. 使用百度地图API,定位并显示自己的位置
  17. MySQL事务 - 自增ID的回滚以及Auto Increment在InnoDB的实现
  18. 2017京东校招面试回忆 已成功拿到offer
  19. 服务器启动文件夹,win10系统开机启动文件夹的路径是什么_网站服务器运行维护...
  20. 我的世界1月12日服务器维护,我的世界摔落保护指令,我的世界1·17末地更新内容...

热门文章

  1. 腾讯课堂下载回放视频
  2. android取QQ昵称,PHP获取QQ昵称【独家最新】
  3. 实例解析C++多线程并发---异步编程
  4. android 手机网络接入点名称及WAP、NET模式的区别
  5. python实现监控阿里云账户余额
  6. PreScan快速入门到精通第六讲仿真实验环境建模
  7. 由整数类型溢出导致的英雄联盟峡谷惨案
  8. Python+openpyxl+selenium实现自动翻译中英文脚本!
  9. 系统托盘弹出通知或气泡
  10. Android禁用分屏