魔术里的集合、映射和关系(九)——硬核之作《双人扑克感应》魔术赏析

2023-10-16 21:40

本文主要是介绍魔术里的集合、映射和关系(九)——硬核之作《双人扑克感应》魔术赏析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在前面的系列文章中,我们从集合,映射和关系的数学概念说起,已经谈到了3个相关魔术的应用。前两个是集合语言来描述的,上一个已经进入了函数部分。相关内容请戳:

魔术里的集合、映射和关系(八)——硬核之作《双人扑克感应》中的数学

魔术里的集合、映射和关系(七)——情怀之作《连环预言》的魔术魅力

魔术里的集合、映射和关系(六)——情怀之作《连环预言》的数学模型

魔术里的集合、映射和关系(五)——优雅之作《4 Kings 折纸》的集合描述

魔术里的集合、映射和关系(四)——优雅之作《4 Kings 折纸》魔术赏析

魔术里的集合、映射和关系(三)——关系和映射的关系

魔术里的集合、映射和关系(二)——集合怎么用?

魔术里的集合、映射和关系(一)——集合是个啥?

今天我们接着上一篇,继续来分析《双人扑克感应》这个魔术里的魔术设计点。同样非常精彩,要知道,这么硬核的数学原理要表演出来得不着痕迹,是数学魔术艺术设计最具有挑战的部分。

先回顾一下表演视频:

视频1 双人扑克感应

魔术解析

 

数学部分上一讲已经分析完了,本篇进入魔术环节,大家可以松一口气了,

不过还想问一句,发现了魔术里斐波那契数列的影子了吗?

 

嗯嗯,没发现才是对的哈,不然,一个魔术看完以后脑子里留下的是斐波那契数列这样无聊的东西,那魔术还有啥好看的?

 

这个作品的原版,包括这里用到的数学原理,都出自Colm Mulcahy的大作《Mathematical Card Magic》中,在书中的第2,3,4章中,从很多角度利用数的排列组合来构造了很多效果。其中涉及的数学结构不乏今天的一一映射,以及常函数等各种内容,也包括少量当数学性质并不完美时候的魔术补救讲解,十分精彩。

不过吧,看起来篇幅有点长,没点耐心还真难一点点看进去。

视频里这个利用斐波那契数列构造的一一映射的原理就出自这本书里面的Little Fibs Principle。说的就是这里关于从斐波那契数列中取两个数的组合相加函数的可逆性:

an是斐波那契数列,有两个不同的索引集合{i1, i2}, {i3, i4},即,对任意i1, i2, i3, i4的索引,不失一般性,设ai1 < ai2, ai3 < ai4,有排列(i1, i2) != (i3,i4)此时,以下式子成立:

 

ai1 + ai2 != ai3 + ai4

 

书中也有相应的原版流程,看得出来是在很努力地把一个数学魔术表演得尽量有趣了,比如摆成一个时钟的形状,和时间相关联等等。但是,作为一个拿出来给专业魔术师来表演的作品,总感觉还差了点什么。于是就有了我上面表演的这个版本,主要考虑以下几方面:

1. 从6张牌中间去选两张,这件事是比较奇怪的,所以要想办法把6变得随机,好像只是分出来两叠中的一叠而已,比如这里就采用了很聪明的setting去做到一个必然的结果,这其实是一种归一映射(常数函数)了,或者用魔术师的话说,就是force。这个我们下一篇再分析;

2. 无论哪两张牌,魔术师都是不知道其顺序的,仅仅知道其集合,或者在这个取子集的场景下,可以叫组合。因此,我们一定要同时说出两张牌,把它看成一个完整的效果而不要让观众有机会去联想到先后顺序的问题。所以,这里有两个观众每人两种牌就够了,完全没有必要变成4个观众,那时候你说不出每个人手里的牌是什么而只知道两个人的集合,就有点说不通和看起来奇怪了;

当然,只有一个观众的时候,那就像视频里这么做咯……

3. 还有一个点,因为魔术实现的方法用到了牌的位置和值这两方面的信息相互推算,因此很容易造成观众察觉其中的奥秘,哪怕不能够完全破解,也丧失了部分效果。如果这个魔术表演成先说出第一个观众的2张牌,再从牌叠中按照序数找另外2张,那就很明显第二个观众的牌是通过位置找的,而第一个观众的牌可能用了什么他们不知道的方法。虽然事实和这有出入,也推导不出来正确的结果,但是观众往这里想,你就输了。

因此,我们还需要用更强的引导去掩盖这个线索,比如这里的先找出后2张牌,说是用感应的,然后再说其实可以推导出第一个观众选的大的那张牌的点数,但是另一张就不知道了,也不知道他们的花色。这里就用到了一个完美的反跌,让观众放松并洋洋得意 ,这时候再猜出来,或者读心或者透视,就很厉害了。

魔术就这么矛盾,让观众看出来吧,高兴完了还要说你不行;看不出来吧,是神奇但是觉得被耍了。那行呗,要不然每个魔术都让你看出来那么一点点先?

在中间设置一些情节的跌宕起伏,不断设置这个效果不可能完成的矛盾冲突以及只能完成这一部分让观众恍然大悟觉得自己还比较聪明的放松和认同,这样的方法让这个魔术的呈现最终达到完美的效果。

对比原版,我的这个版本,对观众来说,魔术师是在完全不可能的情况下一共猜出了4张牌的花色点数,可以说厚度和内容都是很足的,不像简单的原版,仅有那么1个效果而已。而效果背后,直接就是秘密,虽然可能观众数学能力可能没有那么敏感能够精准察觉秘密在哪里,但是,在数学魔术表演阶段看到了数学的痕迹,其实和一般魔术漏门子已经没什么区别了,所以数学魔术的设计要求天然因为其秘密的特殊性就要高些。不仅原理难,不容易证明,更重要的是,连要证明什么,都没有人察觉才行。

而这里,增加的效果数量来稀释观众对单个效果的注意力,达到自然错误引导的作用,找不到真的重点,又有很多值得欣赏的效果,得以掩藏真正的秘密。这就是有一定信息量的魔术的好处,饱满起来更像一个完整的节目,而不是智力游戏。主要有以下几点,合并在一起,完成了这样的效果:

a. 增加了随机选择起点和张数来分成两叠的两个空间,并全程以此神秘概念串连;

b. 把数值的和变成扑克牌的张数,再用关键牌法确定这个张数,其实也是多了一层转化,魔术感又可以增强了;

c. 最后才是用到斐波那契数列项的和函数的可逆性判断数值,以及数值本身和对应扑克牌花色的满射,这个满射是一个早就setting好的固定结果;

这三点除了最后一点的原理和想法来自原作,前面两个都是我自己添加的。看完原作之后,就一直在想,怎么把这么好的数学性质用到魔术中。经过几个月的思考,雏形初现,还待日后在表演中不断改进提升。

好了,今天的数学和魔术就分享到这里。按理说,本系列仅写到第4篇,讲完数学,分享完一个魔术就结束了,在发表前硬生生又添加了5,6,7篇以及两个魔术作品来更全面地表达魔术的美感,数学的力量以及他们联合的魅力。另外,关于今天谈到的一一映射,还有个著名的Debruijin序列恰好就是用的这个,其在魔术,序列分析,机器人定位等各种领域都有应用,内容太多我以后专门写系列文章来讲。

 

在今天完成以后,突发灵感,又想到了一类特殊的函数——常函数,感觉又有了一些新的思路和曾经的作品进行一些碰撞和解读,决定在本系列再加一篇,大家看完视频继续期待吧!

 

视频2 Tiny Berglas Effect

我们是谁:MatheMagician,中文“数学魔术师”,原指用数学设计魔术的魔术师和数学家。既取其用数学来变魔术的本义,也取像魔术一样玩数学的意思。文章内容涵盖互联网,计算机,统计,算法,NLP等前沿的数学及应用领域;也包括魔术思想,流程鉴赏等魔术内容;以及结合二者的数学魔术分享,还有一些思辨性的谈天说地的随笔。希望你能和我一起,既能感性思考又保持理性思维,享受人生乐趣。欢迎扫码关注和在文末或公众号留言与我交流!
扫描二维码关注更多精彩
魔术里的集合、映射和关系(八)——硬核之作《双人扑克感应》中的数学
我和Double Lift的故事(五)——升华篇
闯红灯到底该不该罚款?——逻辑推理浅谈(二)循环、递归与魔术(五)——再谈递归的魔术逻辑与欣赏Roberto Giobbi的纸牌大学点击阅读原文,往期精彩不错过!

这篇关于魔术里的集合、映射和关系(九)——硬核之作《双人扑克感应》魔术赏析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/220962

相关文章

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下

Java集合中的List超详细讲解

《Java集合中的List超详细讲解》本文详细介绍了Java集合框架中的List接口,包括其在集合中的位置、继承体系、常用操作和代码示例,以及不同实现类(如ArrayList、LinkedList和V... 目录一,List的继承体系二,List的常用操作及代码示例1,创建List实例2,增加元素3,访问元

Java中基于注解的代码生成工具MapStruct映射使用详解

《Java中基于注解的代码生成工具MapStruct映射使用详解》MapStruct作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案,本文主要为大家介绍了它的具体使用,感兴趣... 目录介绍优缺点优点缺点核心注解及详细使用语法说明@Mapper@Mapping@Mappings@Co

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

MYSQL关联关系查询方式

《MYSQL关联关系查询方式》文章详细介绍了MySQL中如何使用内连接和左外连接进行表的关联查询,并展示了如何选择列和使用别名,文章还提供了一些关于查询优化的建议,并鼓励读者参考和支持脚本之家... 目录mysql关联关系查询关联关系查询这个查询做了以下几件事MySQL自关联查询总结MYSQL关联关系查询