当代数恒等式遇上魔术(二)

  • 2019 年 10 月 8 日
  • 筆記

在今天的文章中,我们将继续探讨“代数恒等式”这一数学话题和在魔术中的应用,并把它和前面介绍的数学原理联系起来理解,拓展出一些更一般性的数学原理和魔术演绎方法,分享给大家。即希望我们的学习,要理解“道”,而不是学习“术”,能做到君子不器。

数学部分:再谈恒成立

这里我们首先就数学上“恒等式”的产生方式作一些分析。

什么事情会“恒成立”,我认为大体分为两类:

一类是从来没有变过的客观规律,或短期内不会改变的人类认知。

比如亚里士多德的更重的小球下落更快,到牛顿力学定律,到爱因斯坦相对论,在相当长的时间内这些东西被人们视作真理,而确实随着一代人一代人的努力,这些人类的认知像积分一样不断累加而越来越接近真理。

又比如平面几何上美丽的蝴蝶定理,九点圆,赛瓦定理和梅捏劳斯定理等等,这些线段,角度的相等,位置的约束等,都可以有着严格的数学推导证明。只要我们认定诸如两点之间直线最短等一些基本公理,这些就一定正确,前提成立 + 逻辑没毛病 = 结论成立。

还有我们常见的机器学习任务中的工作模式,往往是把一件事情不变的规律通过某个网络形式和参数固定下来,于是在不同的样本,时间,空间上,都可以用同样的这套记下来的规律去进行生成或者判别了。

对于纯魔术师来说,很遗憾,这些信息要么基本为人所熟知,再怎么包装,其现象也难逃司空见惯;要么则太艰深晦涩,难以转化为魔术表演。大家就不要在这样面下功夫了,前辈指明走不通的路,趟了也白趟。

另一类则是人为构造的恒成立关系,这些则是几乎所有self-working流程的核心原理了,他们都是眼见为实的。(而非self-working则可以粗浅理解成“障眼法”,眼见不为实)

如果我们把魔术表演抛开艺术包装成分,单单研究其物理效果,便可简化而视作一个FST(有限状态转移机),给观众的选牌,说数字,拿起一叠,以及魔术是自己的洗牌,切牌等,都是这个状态机上的状态转移,而观众输入部分是随机输入,魔术师的则可以是固定输入,甚至是根据观众输入信息处理得到的必要输入。总之最终目的都是为了最后在某个输入下得到某个几乎确定的状态结果,进而展示成魔术效果。

图1 状态转移图

最后魔术好不好看,惊不精彩,那就是艺术设计了,数学家可以构造出简明神奇的数学结论,而魔术师可以找到素材去包装成舞台上的瑰宝!

当然,如果两者的思路都会一点点,是一个数学魔术师的话,嗯嗯,他们总能发现最合适用来表演魔术的数学。因为数学的魔术价值,和数学价值,魔术价值都不一样。就比如物理上非常重要的牛顿定律的正比关系,在数学上无甚出彩;而数学上极难证明的收敛性,测度理论等实际工程中却只是当作近似成立使用而已。

本篇讨论的是代数恒等式,所以我们先继续这一话题,其实还有很多魔术上精妙的恒等关系,在我们后面介绍其他主题提到他们的时候,会再勾起你的回忆的。

魔术部分:作品欣赏

这个作品也是来自英国女王学院的原始idea,除了名字,并未作太大改动,请大家欣赏:

视频1 神奇的配对

数学魔术分析

这个作品原理不难,相信有了前面文章的基础大家看几遍应该能明白其中原理,为什么还来单独讲这个魔术呢?因为它麻雀虽小,五脏俱全,其中用到了很多数学和魔术的性质,而且非常漂亮的融合在了一起。且看其流程里暗含的几个基本的数学规律:

1. 二切扑克牌任意次,均不改变一叠扑克的循环队列结构(这一性质的具体应用后面有专门文章讲);

2. 周期函数的周期起点是任意的;

3. 无论集合怎么划分,其并集大小不变(废话,可是对魔术很重要啊);

4. 任意序列上的元素从头和尾开始计数的索引和是:从1开始索引:(序列长度 + 1);从0开始索引:序列长度 – 1);

1和2保证前面的洗牌操作不会破坏扑克牌序列的性质,中间的reverse操作(前面文章有介绍哦)使得桌上的两叠牌恰好构成镜像关系,于是,对两叠牌的操作其实可以等价到同一叠牌上。观众对筹码的拆分时候的恒等关系是两侧的数量和为定值(规律3),即从一叠牌的两个方向的索引和为定值,由规律4可知,无论怎么拆分,观众必然选到同一张牌,在恢复镜像关系到两个对象以后,那个成对的效果就出现了。

怎么样,从中看没看到reverse操作的又一神奇应用,直接把f(x)和x展现出来,构造分离而合一的镜像操作!这使得本来很明显的现象一下变得扑朔迷离!

有没有看到加减逆运算来构造的恒等式?以其中一叠张数为a,那么另一叠需要数的张数b1和在牌叠上倒数的张数b2就是一样的,因为c为相等的常数!

这个恒等式的构造过程中,用上了我们讲过的几乎全部十八般武艺,说好的样样俱全吧!

还有几个魔术方面的处理也很关键:、

1. Reverse操作十分自然而有逻辑,丝毫没有痕迹;

2. 不断地减少观众手里牌的张数,让大家一直看到变化,而没注意,这个变化是迫不得已发生去使得性质不变的,这是魔术师最划算的买卖,干了一个dirty work反而使得观众更加信服!

3. 代数恒等式的数值结论可以映射成牌的点数相等的结论,这样会更加震撼(当然也不能生搬硬套,像上期张数巧合魔术就已经很好了,不该再画蛇添足),这里映射成一对甚至是完全一样的牌,效果显然是加分的;

最后,我们来分析一下序列索引方式和在这个魔术里的巧妙应用。

很多不是搞计算机的人不理解为什么计算机上的计数要从0开始数起,甚至专业人士也只是记住了这个结论却不明白为什么形成了这个约定俗成的方式。其实,这一切都是有缘由的。

所谓序列,其实是我们对一维时空内对象的一种抽象建模,其中只有一个依序变量(计量方式有定类,定序,定距,定比四类方式,有机会详聊),仅有大小关系和排序,而每一个对象仅相当于无限空间上的一个点,大体相当于拉直高速公路上种的树(假设等间隔种植,头尾都有)。这时候,我们往往有两种计数需求:

1. 某棵树是从头开始数第几棵树,也可以定义为,包括自己在内,和前面的树一起,一共有几颗。这时候,第一棵树包括自己有一棵,第二棵数包括自己有两棵等等。就像你说你第一名其实是说,我前面的只有1 – 1 = 0个人了一样,包括自己才是1,这是对单个对象的排序意义。

2. 另一个意义是,这棵树的位置离第一棵树几个单位长。那么这时候原来的第一棵树离自己显然是0个单位长,原来的第二颗数离第一棵是1个单位长,由此我们程序员就把索引起始改为0了,而其本质含义是度量的那个假想的离第一个位置的单位距离数量。

所以,我们用正整数一般的要求其实是数量的度量,偶尔需要计数,而恰好,第一种方案两个值相同而容易理解,而这种空间距离概念在一些日常场合压根是没有的,自然也就不需要了,但是向量,或者说数组,某些时候就是抽象的时间或空间里的对象,因此依据距离来度量和代表索引的方式,也就在计算机中存在了,尤其是那些如C的底层语言,因为像寻址一类的操作,也都是看在内存上的相对距离,而这些地址本身,并不是一个计数起来有意义的树或者苹果一样的实物,而是抽象的空间位置序列。

发现一个有趣的现象,NBA球队胜场排名里竟然综合运用了这两个计数概念,我们常说的排名和胜场差就分别体现二者的含义。比如,第一名的胜场差是0,第二名胜场差比如1.5场之类。大家可以从中仔细体会其中的区别。

在这个魔术里,我们竟然罕见地选取了等价从0开始的计数方式,这其实是不自然而需要避免的,但是,不这样做会造成,最后筹码多一个,也会需要限定两边至少有一张牌(不然索引中没有第0张的说法)。折中以后,选择了数牌到下一张的展示方式来实行这种实际是0基计数的策略,那都是有设计,不是胡来的。

好了,本篇是《当代数恒等式遇上魔术系列》的最后一篇,全面而完整地阐述了此类技法的精髓,相信以上文章能够给你对这类数学现象和魔术技巧有一个全面的理解,能够联想之前的作品有一个宏观的认识,提升思维能力,激发大家的创作潜能。