系列开篇简介
从本期开始再次进入久违的数学魔术系列,这期给大家准备的是经典的数学魔术原理Gilbreath Principle!经过陆陆续续历时半年多才整理出了这个系列的全部数学原理,魔术内容以及视频拍摄,各位数学和魔术爱好者们千万不要错过,精彩马上开始!
Gilbreath Principle是无论在数学领域还是魔术上都十分有魅力的一个议题,数学之魅力在于其形式简单明了,却是通往很多高深数学内容的桥梁;而魔术之美在于,其作为基本原理巧妙地嵌入流程中,因为其十足的隐蔽性,造就了一个若非知其所以然,几乎会看到一个不可能的奇迹的结局。在这个系列里,我们将深度剖Gilbreath Shuffle这一过程的数学性质,以及对应Gilbreath principle本身以及相关的数学议题;然后会挑选一些我从各种渠道收集和改编而来的利用到Gilbreath原理的魔术,一定让喜欢数学和魔术的你大饱眼福。
Gilbreath Shuffle & Permutation
Gilbreath Shuffle指的是满足Gilbreath Principle性质中所进行的物理操作。和一般的Riffle Shuffle表面上看起来是很像的,甚至不理解时会被误认为是其更乱的加强版。然而无论是规律的优雅性上,还是真实的混乱程度之低,都比Riffle Shuffle要好。它分为两个步骤:
- 对牌叠做count操作任意多张,形成两个牌叠;
- 将count出的牌叠和剩下牌叠以riffle shuffle方式洗在一起;
可以看到,这里和Riffle Shuffle唯一的区别在于,Riffle Shuffle不是通过count方式取得新牌叠,而是直接用的cut,中间的区别等价于多了对第一叠牌因为数牌形成的整体倒转操作。
不要问为什么,这是定义。魔术要做的是让这个洗牌方法和正常洗牌建立联系以让观众减少怀疑,比如弱化数牌过程,或者把它强调为一种更加乱的方式。这个洗牌得到牌叠的过程还有一些等价的变体:
- 用turn over取代数牌:这个是个常见的在空间关系(不以部分牌叠自身为参考系,而是绝对方位)意义下,不考虑牌本身的正反属性,turn over和count等价性的应用。这样洗下来,刘谦有个经典的叫法“疯子洗牌法”也挺好的,它甚至看起来还加强了原来的Riffle Shuffle,成了一个更混乱的洗牌;
- 每次从牌顶或牌底拿一张,直到拿完形成牌叠:这个方法最初我以为是像Si Stebbins序列魔术里顶底等价的应用,但实际上这其实才是Gilbreath Permutation更贴近本质的生成过程的执行;而且当每次都是一底一顶的话,这个操作还有个名字叫Milk Shuffle,是完美洗牌版本的Gilbreath shuffle!关于完美洗牌,我们后面还会有专门系列介绍,敬请期待。
注意,这里等价的意思是说,这些操作对应于同样的排列变换集,但是过程和操作形式有差别。但无论是怎样的变体,其过程原理的本质都是,把序列看成是一个开口的圆环,环开口处分别是顶牌和底牌,操作等价于每次都从两个口中递归地选择一张堆起来,逐渐堆叠成新的牌叠。所以看起来,变体2反而是更直接地在执行这个过程。而其他的不过是先确定了要从顶部一共拿多少张,就数多少张下来,再一起选择罢了。
和一般的Riffle Shuffle来比,每次左右选一张的步骤是一样的,但是,倒转过来的Gilbreath Shuffle暗中完成了一件隐秘的事,那就是每次选择,都是剩余牌叠的首尾选其一,而首尾本质上属于相邻关系,也就是每次都是从相邻两张中选,所以也就形成了其基本的直觉的性质,其洗完以后排序的前缀或者后缀(即顶部或底部),都是源于原牌叠连续牌叠的一个重新排列,顶部的源于中间抽出的一个连续子排列(子串),底部为原开头结尾串组成。
由此我们可以算算Gilbreath Shuffle生成的排列空间有多大。比如n张的子串,其可能排序有2 ^ (n - 1)种。若把整叠牌都看成一个全子串,那么自然Gilbreath Shuffle的洗牌得到的结果总数是2 ^ (N - 1),N为牌叠张数。我们知道,Riffle Shuffle一次的结果空间是2 ^ N - N种,每次都是选择是否要用顶叠这样的模型只有不变的牌型重复了N次要减掉,但为什么Gilbreath Shuffle会少接近一半呢?
问题就出在对第一叠的Reverse上,假设洗完以后顶牌为A,这张也许是顶叠的底牌,也许是底叠的顶牌,而且,二者都可以构建还原出一次唯一的Gilbreath Shuffle过程,不像Riffle Shuffle那样只有底叠全部优先掉下的那些不同张数的选择才会有重叠。也就是说,这里存在着一个所有可行洗牌结果都对应有且仅有的两种Gilbreath Shuffle过程的映射,而且互相交集为空,是个两两Gilbreath Shuffle到同一个结果的一一映射,那自然刚才的建模的洗牌方法数量比真实结果数量也翻倍了,要除以2还原。还有一种理解也十分方便,就是我们可以看变体2,除了最后一张没得选以外,前面(N - 1)张牌是有两个选项的,因此是2 ^ (N - 1)种。
一个毫不起眼的翻转操作,竟然减少了近一半的洗牌结果的可能性,而且,根据循环递增子序列的阶次可以看出,除了仅切出0的不变和切出1张以及它们的等效情况,二者不可能从同样的初始牌叠洗成同一个结果。
Gilbreath Shuffle以及上面提到或没有提到的所有变体,对序列操作以后的结果,我们叫做Gilbreath Permutation(其定义是,其所有前缀都是连续序列的排列),这本来就是一条关于Gilbreath Shuffle结果性质的重要结论啊!当然,如果在模的连续意义下,0和N - 1也相邻的话,如前面分析的,任何尾缀也是连续排列,因为所谓头和尾,环意义上并没有区别。(从牌叠本身的对称视角也很容易看到这一点)
Gilbreath First Principle
前面说的是由Gilbreath Shuffle以及变体会构造得到Gilbreath Permutation,并由此给出了这个排序的基本定义。接下来,我们看一下,如果一个序列满足这样的条件,再复合上一些前提,看看能有哪些优良的性质。
Gilbreath Principle有两条,其中第一条是其在周期序列上的应用,第二个是更加本质全面的说明,我们一个个来看。
Gilbreath Fisrt Principle:一个含有n个完整周期,周期长度为m的序列,进行Gilbreath Shuffle之后,其自牌顶部或底部开始,每m张牌都一定是原一个周期内元素的一个排列(有重复元素则为有重排列)。
有了前面对Gilbreath Shuffle过程的理解,相信这个原理应该已经很显然了,注意原理其实是数学模型 数学定理证明的总体。数学模型部分就是你承认Gilbreath Shuffle等价地干了那些事,数学定理则可以在纯数学语言下证明。比如Gilbreath Principle的数学部分完全可以写清楚排列公式以后显而易见地得到证明,但是和把排列理解成有限集合地双射一样,这并不能帮助我们更好地理解过程的本质规律和性质,这里我就不列了,直接深刻理解Gilbreath Shuffle到底物理上干了什么会更有帮助。
最后,根据前面的分析我们也知道,这里每个周期的排列总数也只有2 ^ (m - 1)种,并没有m!那么多,这可以看作是对原始性质的加强了,但目前还没找到什么魔术上的很好的应用。
在wiki和《Magical Mathematics》中的资料里,这一条原理被描述成了具体的案例。比如最经典的把牌按照红黑两色交替排列时,切成两半,甚至都不需要执行reverse操作,只需要两叠底牌颜色不同,洗到一起,就可以形成Gilbreath Permutation,且每两张连续的扑克牌一定是一红一黑的。甚至底牌颜色相同,这么洗也仍然有规律和补救措施。至于为什么这么特殊,我们留到具体的魔术中去讲。这个案例其实就是26个周期,周期长度为2的例子了,显然,用花色可以做周期长度为4的,点数可以是13的。更神奇的是,这些各自子属性形成的周期性之间互不干扰,可以共存,因此可以复合出很多精彩的魔术内容,前面Si Stebbins Stack系列里提到的《四季魔术》就是应用这些性质的典范。
好了,篇幅原因,本期先讲到这里,下一期我们接着讲更加重要的Ultimate Gilbreath Principle相关内容,敬请期待!
老规矩,这里先放几个后面讲解会用到的视频,先睹为快。
视频1 红黑洗牌分离魔术
视频2 红黑匹配的赌博
视频3 红黑张数相等
视频4 Eric 心电感应
视频5 终极4kings出现
视频6 Gilbreath 10 Card Divination
我们是谁:
MatheMagician,中文“数学魔术师”,原指用数学设计魔术的魔术师和数学家。既取其用数学来变魔术的本义,也取像魔术一样玩数学的意思。文章内容涵盖互联网,计算机,统计,算法,NLP等前沿的数学及应用领域;也包括魔术思想,流程鉴赏等魔术内容;以及结合二者的数学魔术分享,还有一些思辨性的谈天说地的随笔。希望你能和我一起,既能感性思考又保持理性思维,享受人生乐趣。欢迎扫码关注和在文末或公众号留言与我交流!