前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于洗牌的研究(一)——平常你都是怎么洗牌的?

关于洗牌的研究(一)——平常你都是怎么洗牌的?

作者头像
magic2728
发布2019-09-27 14:28:33
1.1K0
发布2019-09-27 14:28:33
举报
文章被收录于专栏:MatheMagicianMatheMagicianMatheMagician

写再前面:本系列作品由MathMagician独家首发,一共有七篇,从数学和魔术两个角度对日常生活中“洗牌”这一现象作了挂一漏万的分析。之所以说是挂一漏万,是因为无论数学还是魔术,洗牌中的任何一个小点都够写几篇了,这点篇幅不可能绝对全面。所以,本系列主要选取了一些常见的洗牌方式和相关内容展开作了一些介绍,包括洗牌分类,混乱度评价,过程建模,近似计算,以及几个基本但是及其巧妙的利用洗牌规律设计的魔术。相信聪明的你读完以后,会在数学和魔术上,都对“洗牌”这一现象有着更加深入的认识。

本篇是第一篇:平常你都是怎么洗牌的?

在日常生活中,无论是娱乐的斗地主升级,亦或是带点赌博性质的德州三公梭哈这样扑克游戏,保证公平的重要一环就是洗牌。

图1 花式洗牌

在正规的赌场有一个巨大的牌靴来发牌,里面有12副牌保证可以玩比较长时间和接近均匀分布的选牌,一般在发牌前会像麻将一样洗乱重新发牌;而在一些大型扑克比赛中,为保证公平,洗牌的流程往往也会先后进行麻将式混乱,鸽尾式洗牌和印度洗牌。按理说第一步已经是最乱的方式了,为防止偷看而加上后面两步。

或者在QQ斗地主这类棋牌类计算机游戏中,直接就是机器随机数了,甚至还有不洗牌玩法,也可以保证一定程度的洗乱和公平(注意这两个概念不一样,哪怕不洗牌,只要不偷看,虽然没洗乱,但也是公平的,后面会分析此问题)。

但是,我们平常两三好友打牌时候,往往为了节约时间,应付式地洗牌几次,方法也各异,那么问题来了:

这么洗牌真的保证洗乱了吗?

如果没有洗乱,游戏还是公平的吗?还能体现玩家水平吗?

如果没有洗乱,或者增加一些手法就能不洗乱,这些点能不能作为产生魔术现象的原理来设计魔术?

带着这些现象和问题,我们一起来研究一下扑克牌中的洗牌问题。

洗牌方式分类

大体可以分为Determined Shuffle(确定洗牌)和Undetermined Shuffle(非确定洗牌),数学的话讲就是函数和随机过程。

1. Undetermined Shuffle

1.1 Cut in hand or on the table(切牌)

图2 花切

往往是固定叠数和新排列位置的方式,随机的是每叠牌的张数,再按照一定模式重新排列,两个过程共同构成一次随机的切牌,而后者往往是固定的,随机来源于前者。这个可以演化为很多好看的花式切牌,作为魔术中的调剂和普通扑克游戏中保证公平的方式,其过程的数学表达为:

new_deck = Perm(Cut(old_deck))

这里有一个特例,就是对于二切,即仅仅分成两叠牌,此时扑克牌建模成循环队列以后,切牌不影响其数值的任何变化,仅仅改变头指针,换句话说等于没洗,只是改变了你观察它的位置,这一简单的性质便可以作为很多魔术的设计元素,虽然难以独立使用,但却是一个整体效果不错的添头,我们后面会有相关魔术分享。

1.2 Hindu Shuffle & Overhand Shuffle(印度洗牌,过手洗牌)

图3 Hindu Shuffle

这是更加随机的选择叠数和每叠张数,但是却固定地对所有叠进行的reverse操作,可以看作切牌的特例:

new_deck = Reverse(Cut(old_deck))

美国人习惯过手洗,而东方人习惯印度洗牌,但就混乱排序的效果上看没有任何区别,实践和理论分析表明,这不是一个很好的洗牌方式,费半天劲可能对扑克牌的混乱程度并没有太大作用。但反过来,由于太多地方没有洗乱了,所以给了魔术师很多偷看扑克牌和强选的机会,像印度式暗撇和强控底牌便是如此,而这两个性质已经可以设计很多厉害的效果了。后面我们有专门章节讲这类用印度洗牌特性设计的魔术。

1.3 Riffle Shuffle(鸽尾式洗牌) &Variation

图4 Riffle Shuffle

这是我们最常见的分两叠交错的洗牌法,统称交叉洗牌,以Riffle Shuffle最为常见。有不少变种,如优美的Rosette shuffle;还有完美洗牌的基本形式butt shuffle,这特别伤扑克牌。这些是最经典和经济的洗牌方式,究竟为什么是最经济以及如何衡量的我们后面会逐步介绍到,这是本系列数学部分的核心内容;

1.4 Top-to-Random Shuffle, Random-Transposition,Random-Adjacent-Transposition, Rudvalis Shuffle, ThorpShuffle, L-reversal chain and etc.

这些方法大多是专门研究洗牌这一随机过程的数学家构造的方式,往往在真实游戏中不会使用,大家有兴趣可以google一下进一步了解,另外还有一些特殊的如CATO,COAT,Gilbreath等等,里面有很多巧妙的应用可以用来设计魔术,后面我们会有专门的章节讲到他们,这里暂不涉及。

其实,这里的每一种洗牌方法,除非直接铺在桌子上像搓麻将一样搓开,其洗乱的程度相对于整叠牌都是很小的,都保有很多不变的性质,细细思量,并使用之,就可以创作一些魔术了,而且,所见即所得,完全自动化哦~后面我们会介绍。

2. Determined Shuffle

2.1 Monge shuffle & Milk shuffle(蒙赫洗牌,牛奶洗牌)

这两种洗牌方式互为逆过程(回忆一下前面《Reverse原理的数学和魔幻艺术》以及《加加减减的奥秘——从数学到魔术的思考》系列中关于对称关系,反函数概念的介绍),类似的还有down under alternating shuffle,或者均匀发牌等过程,这些都是可以构造严格逆过程的。因此,根据设计预测或巧合类魔术的思路,这些过程都可以作为素材使用,其中有些洗牌的有些发牌的,或者融合在一起。

2.2 (In / Out) Faro Shuffle & Anti-faroShuffle(完美洗牌,反完美洗牌)

图5 Faro Shuffle

可看作是一种确定的Riffle Shuffle。这个对手法和扑克质量,新旧程度有一定要求,尤其是anti-faro,没有点天赋还真学不会,虽然可以像2.1一样直接构造逆过程,但非专业难以使用。如果完整执行的话对于扑克中的前半部分牌的位置值恰相当于计算机的左移位操作,in faro则还要再加1(从0开始数)。由此,某张扑克牌的位置可以经过几次洗牌就控制到一个固定的地方,类巴格拉斯的效果就可以由此做到了。这个手法可以当纯表演,也可以作为固定流程中的一环,灵活使用。本系列也有例子来来介绍这方面的魔术内容。

2.3 False Cut of 2/3/4...... Decks, TableFalse Cut(n段假切)

我们说切牌改变的是分出牌叠的排列,虽然改变方式固定,但随机来自于每叠牌的张数。但是有个特殊情况是,如果排列不变(包括局部不变),那这里张数的随机就是失效的,不会变成扑克序列的随机。故假切就是这么一种做法,每一步看似切乱的过程都有对应逆排列过程来恢复它。这个一般在魔术中作为一种假洗牌获得对牌的位置控制,或者直接当作花切表演来进行,也很美丽,就像开头图1一样。

我大约初中左右通过百度学到第一个三段假切,后来加到四段,还有桌面二,三段假切,甚至最爱魔术的时候还自己设计切牌动作,不过前辈造的轮子比我自己发明的好太多了,而实战中的魔术对切牌要求并没有那么高,所以就没有再深入了。不过喜欢的小伙伴可以继续加深研究,是个很难的方向。

2.4 Fake Riffle Shuffle(假鸽尾式洗牌)

效果同假切,但是看起来会更加逼真,毕竟用的是看起来整叠都完成的Riffle Shuffle,如果做得逼真,能让观众参与进来,观众一定会以为这是真的洗乱了。

总的来说,2部分洗牌方式在扑克游戏中往往并不常用,你想啊,从开始到结束,扑克走了一个确定的操作,以一个函数关系映射到了一个完全确定,可预测的序列了,这不没有引入任何混乱度,相当于没洗嘛,所以天然地在正常的扑克游戏中遭到抛弃。

而一般时候不用,恰好变魔术时候管用啊!尤其是,这些洗牌方式如果动作上看起来和正常洗牌一样,不就恰好造成了观众认知和实际发生事情的差距,魔术现象不就构造出来了嘛!正是如此,所有的假切牌/洗牌手法都有一个真实的过程与之对应而所做之事有略有不同,进而造成魔术效果,再准备着到别处展示出来。而1部分的方式也有着一些不变的性质,使用起来能达到selfworking的效果,本系列会略有介绍,后面的文章也会反复提到。

介绍完洗牌的分类,我们可以看看,从直觉上看,平常我们简单的洗牌,对于真的要把牌洗乱再开始游戏的要求,真的做到了吗

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MatheMagician 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档