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

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

相关文章

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

Java基础回顾系列-第六天-Java集合

Java基础回顾系列-第六天-Java集合 集合概述数组的弊端集合框架的优点Java集合关系图集合框架体系图java.util.Collection接口 List集合java.util.List接口java.util.ArrayListjava.util.LinkedListjava.util.Vector Set集合java.util.Set接口java.util.HashSetjava

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

java集合的概述

集合就是一个容器,我们可以把多个对象放入的容器中。就像水杯(假设容量可以不断扩大)一样,你可以往水杯中不断地添加水,既然是水杯,你就不能往里添加沙子,也就是说集合中添加的对象必须是同一个类型的(引用类型,而不能是基本类型)。 看到集合的介绍会让我们的想起数组,那么集合和数组有什么区别呢? 首先,数组的大小是固定的,而集合理论上大小是不限的。 其次,数组既可以存储基本数据类型的数据,也可以存储

魔术方法介绍

目录 一、基本介绍 1、什么是魔术方法 2、常见的魔术方法 二、__str__ 1、基本介绍 2、应用实例:请输出Monster对象的属性信息 三、__eq__ 1、基本介绍 2、应用实例 四、其它几个魔术方法 1、其它魔术方法 2、应用实例 参考文档:3. 数据模型 — Python 3.12.5 文档 一、基本介绍 1、什么是魔术方法 1)在Pyth

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

数据依赖基础入门:函数依赖与数据库设计的关系

在数据库设计中,数据依赖 是一个重要的概念,它直接影响到数据库的结构和性能。函数依赖 作为数据依赖的一种,是规范化理论的基础,对数据库设计起着至关重要的作用。如果你是一名数据库设计的初学者,这篇文章将帮助你理解函数依赖及其在数据库设计中的应用。 什么是数据依赖? 数据依赖 是指同一关系中属性间的相互依赖和制约关系,它是数据库设计中语义的体现。在现实世界中,数据之间往往存在某种依赖关系,而这

c++ 和C语言的兼容性关系

C++ 和 C 语言有很高的兼容性,但也存在一些差异和限制。下面是它们的兼容性关系的详细介绍: 兼容性 C++ 是 C 的超集: C++ 语言设计为兼容 C 语言的语法和功能,大部分 C 代码可以在 C++ 编译器中编译运行。 标准库兼容性: C++ 标准库包含了 C 标准库的内容,如 stdio.h、stdlib.h、string.h 等头文件,但 C++ 的标准库也提供了额外的功能,如