完美洗牌的秘密(五)——完美洗牌的性质和变体

教育   2024-08-30 18:08   广东  
早点关注我,精彩不错过!

之前4篇文章,我们介绍清楚了完美洗牌的3对基本定理。今天,我们来看在这一般的描述基础上,还有哪些常见性质和变体值得探讨。
所谓操作的性质,在扑克牌数学魔术的语境下,指的就是什么样的性质,在这个操作下能过获得保持或者转换。转换部分其实就是(反)完美洗牌定理中从各个不同角度(单张绝对位置、总体周期、相对位置)为基础的剖析,是对变化的基本描述的抽象总结;而保持的则更加隐蔽,在变化中直接看不出来,还要结合性质描述本身来看。今天我们就介绍一个最经典的完美洗牌操作的不变性。


完美洗牌和stay stack


由完美洗牌第三定理,我们还可以很容易得到完美洗牌关于stay stack镜像(for 牌叠索引a, b,若a + b = 2N - 1, 有{a, b}构成某个满足特定属性的集合)的一个性质:完美洗牌对于偶数张的stay stack镜像性质保持,对于奇数张的情况则是以其初始对称轴为中心来保持的。甚至偶数张时,它们都不必是完全交错的faro shuffle,只要两叠张数相等,部分faro也可以,称为局部完美洗牌。证明如下:
偶数张2N的情况:

假设原来处在镜像位置的两张牌的索引分别为A,B,有:

A + B = 2N - 1

不妨设A < B,那么对于标准的一次out faro shuffle,其新位置为:

A' = 2A

B' = 2N - 1 - 2(2N - 1 - B) = 2B - (2N - 1)

于是,A' + B' = 2(A + B) - (2N - 1) = 2N - 1仍然成立,两个新位置仍然处于镜像上。相当于索引上以a + b = 2N - 1为性质构建的集合划分结果,在这个排列变换下的新牌叠索引对应值性质不变(始终是索引的性质,初始时是原排列,值和索引相同,后续则是新排列结果上的原索引代表的值的性质,如果值上还有性质,可以再复合)
in faro的情况可以类似说明。不过,我们可以把in faro看作是顶部底部各多一张牌时的out faro洗牌后把两张再拿掉的情况,因为顶底拿掉不改变镜像性质,因此成立。

我们可以用同样的思路来说明非完全的局部faro shuffle为什么能保持性质,因为那直接等效于去掉没有进行faro shuffle的那部分牌叠的faro shuffle再于顶底处各自补上相同张数的牌。补上的牌有镜像性质,而补的过程也不破坏本身faro洗牌后的镜像保持,因此成立。

奇数张2N - 1的情况:
而当张数为奇数张2N - 1的时候,我们直接根据完美洗牌第三定理,考察原本关于中心牌(位置为C)对称的两张牌A,B,满足:

A + B = 2C

A - C = C - B

经过一次完美洗牌以后,A,B和C之间的距离都会变成mod意义下的两倍,有:

A' - C' == 2(A - C)(mod 2N - 1)

C' - B' == 2(C - B)(mod 2N - 1)

于是,A' - C' == C' - B'(mod 2N - 1)

于是两张牌新的位置仍然关于新的对称中心C'的位置对称。注意这里不同的是,所有镜像对称牌的对称轴也由C转为C'。而C也转移到C'的位置,因此相当于有一个一直可以参照的移动对称轴存在。

所以对不完全的faro shuffle的stay stack的性质保持,这里就不能同偶数的情况等效了。因为偶数张时,对应牌只能关于固定的中心轴对称,而奇数张的faro shuffle以后,对称轴早就不知道去哪里了。

后来才知道,原来faro shuffle在奇数张时候还专门有个名字,叫做straddle faro shuffle,一般是指的in faro的情况,out faro可以对称地看作是从另一侧开始的straddle faro shuffle了。这些其实完全不影响仍然用faro shuffle中的in和out来命名。不过从名字看,就能看出straddle faro的洗牌是会呈现一个左右对称的结构,这也是这个洗牌的重要特征,in和out之间只差一个reverse而已,甚至只差一个看待它的视角。

正因为奇数张的时候有实体的一张牌作为对称中心来参照,反而它可以对称不变地在中间进行切牌操作而不破坏相对镜像性质,因为切牌是距离不变的。相反这些操作都会破坏偶数张固定中心的stay stack的性质,反而使得奇数时候的情况变得更加灵活了。虽然奇数不能做那种看起来很奇怪的不完全faro shuffle了,可那本来就是个很奇怪的非正常洗牌方式,有什么舍不得的呢?而因为奇数有比偶数更独特的关于距离的性质,反而有了更广泛的应用,后面还可以看到它其实是peirce count的一个最特殊的形式!


(Anti)Faro Shuffle的操作变体


稍微补充一点。faro洗牌一般被视作没有一定扑克魔术手法基础的人做不了的操作,不过这些都可以用具有相对性质的anti faro shuffle替代。常见的就是依次发牌发成两叠的操作,如果补上翻转,那这就是一次标准的anti faro shuffle。如果没有,那就相当于在faro shuffle的基础上再复合了一次全局的reverse操作。有时这个发出来的两叠不一定在桌子上,可以直接在手上in jog和out jog就完成了。不过对于这种依次发n叠的操作,我们在讲周期性规律的时候就聊过了,因此还算熟悉,本质是把mod值相同的牌发到一叠,因此还可以扩展到3叠,4叠等更多的情况。不过,这就真的只能发牌了,洗不了。

当然,faro shuffle本身也可以有变体。你把牌直接分成两叠,然后依次发到一叠上,那也等效为一次faro shuffle了,同样的如果没有翻转的话等效于还要复合一次reverse。这也可以扩展到n叠的情况,只是比anti的发n叠看起来的收n叠更是一个不太常见的操作了。


milk shuffle和monge shuffle


这里还有一个faro shuffle可能大家都意想不到的变体,那就是milk shuffle。看起来是个很奇怪的操作,但它竟然是把其中一个半叠进行reverse以后再进行faro shuffle的等效操作!那么它的逆操作monge shuffle,自然也是同样的 anti faro shuffle以后再进行半叠的reverse操作!看起来毫无关联的两种洗牌方法竟然在二进制的框架下完美地组合在了一起,据此可以观察到milk shuffle本质上竟然是Gilbreath shuffle在faro shuffle情况下的特例,因此有时候会具有极佳的性质来变成魔术。

我们可以简单推导一下milk shuffle的每张牌位置的变化规律,其实用函数复合的思想就很好解决了:

milk shuffle定理:

设牌叠序列为D,长度为l,有:

当l = 2n为偶数,

MilkShuffle(D) = OutFaroShuffle(Reverse(D[:n]) + D[n:])

当l = 2n - 1为奇数,

MilkShuffle(D) = InFaroShuffle(Reverse(D[:(n - 1)]) + D[(n - 1):])

其实还有个更简单的可以不用区分奇偶性的统一公式,那就是我们直接以牌底为开始索引来计算,那么:

MilkShuffle(D) = OutFaroShuffle(D[:[(I + 1) / 2]] + Reverse(D[[(I + 1) / 2]:]))

而这个式子显然更加简洁明了,可见转换一下观察角度,对象的描述会变得多么简单愉快。

当然,硬是要去做一个另一种Faro Shuffle和Reverse半叠的操作也不是不行,只是操作起来就没有milk shuffle这样如丝般顺滑了,失去了实际操作中的便捷和特殊性。

而milk shuffle的逆操作,monge shuffle也是一个看起来很舒服的操作。注意完成时如果是奇数张第2张应该放上侧,否则下侧,因为奇数张的milk最后一张本就是多余没有,因此单列出来后才开始一上一下地恢复。而且和milk shuffle一样,并不需要刻意去考虑到底对奇数和偶数张分别执行哪种Faro shuffle,就一种而已:

MongeShuffle(D) = MilkShuffle ^ - 1(D)

别看milk shuffle仅仅是中间穿插了半叠的reverse操作,其操作的阶次已经不能够再像原来的完美洗牌定理那样推导得到了,这部分内容我们留作以后思考解决。

顺便再提一下,在《文字对称中的数学与魔术(四)——魔术《3 or 8》》中的《3 or 8》这个魔术作品setting的时候,有一系列依次翻转一叠牌的顶部k张,k依次减小的操作,当k从张数减1一直到1每次减1递减时,这个洗牌的结果就刚好是milk shuffle的结果,也是它的一个变种,当然我们不考虑朝向的变化。另外在《CATO原理中的数学与魔术(六)——Baby Hummer的拓展一》的《骗数的选择》中,一样用到了这个。可见,数学性质总是隐藏在表象的背后,像一只看不见的手组织着自然地秩序,哪怕它们表面上看起来,毫无关系。

以上就是完美洗牌相关数学性质的详细探讨,其实还有一个明显的拓展就是通过依次发牌和依次收牌这两套互逆的操作去实现更高维度的完美洗牌。如果再给定一些特殊的收牌次序,将会得到一些非常有意思的序列特性。这些内容,上古的大师peirce曾经研究过,被Perci diaconis等人重新总结过,我们后面再介绍质数,同余等代数内容的时候,我们再来专门予以介绍。甚至CATO相关操作也可以纳入完美洗牌的二进制范畴来思考的,甚至由此引出新的高阶拓展,我们后面再慢慢分析,尽请期待。

精彩抢先看!

视频1 penehole's principle magic more

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

扫描二维码

关注更多精彩


完美洗牌的秘密(四)——(反)完美洗牌第三定理
易拉罐的奇迹(二)——《易拉罐平衡》与《气体转移》
2024阿里巴巴全球数学竞赛决赛中的数列题解析(分析与方程方向第4题)
CATO原理中的数学与魔术(十四)——流程设计思路与升华
魔术里的交代与暗交代(三)——暗交代是怎么做的?
点击阅读原文,往期精彩不错过!

MatheMagician
当数学遇上魔术,当理性遇上感性,不仅可以在艺术的殿堂里擦出火花,展现魅力;也能在科学的世界里无所不能,摧城拔寨。马上,就是实现梦想的瞬间。
 最新文章