要洗多少次牌才能彻底洗开?

作者: matrix67

来源: 果壳

发布日期: 2023-01-29 16:00:07

本文讨论了洗牌次数对扑克牌随机性的影响,指出三次洗牌远远不够,五次洗牌也不能彻底洗均匀,直到第七次洗牌才会让随机性显著增加。

三次?远远不够

永远不要以为,洗个两三次就能把牌洗开了。很多扑克牌⼩魔术就利⽤了三次洗牌远远不能把牌洗开的秘密。⽐⽅说,我拿出⼀副新牌给你,由你来负责洗牌。洗⼀次。再洗⼀次。你觉得还没洗开对吧,那就再洗⼀次。然后,请你偷偷看⼀眼最上⾯的那张牌,记下它的花⾊和点数,然后把它插到这摞牌中间某个位置去,再把整副牌给我。我便能挑出这张被动过的牌。

其实完全不需要特别的作弊⽅式。魔术的原理正如上⽂所说:把⼀摞排列有序的牌洗三遍,并不会让整副牌完全⽆序,排列顺序会有⼀个很强的规律。移动最上⾯⼀张牌的位置会破坏掉这个规律,从⽽露出⻢脚来。

为了更⽅便地做进⼀步说明,我们下⾯只⽤ 13 张牌来举例。由于这是⼀副新牌,初始时这 13 张牌是有序的:假设洗⼀次牌,是规律的把上⾯这个序列分成前后两半,然后交错构成⼀个新的序列:那么洗完⼀次牌后,依次寻找 A, 2, 3, ..., J, Q, K 的位置,你会发现它们形成了两个“上升序列”(分别⽤两种颜⾊标了出来)。那么,再洗⼀次牌会对这个序列造成什么影响呢?

容易看出,第⼆次洗牌将会把每个上升序列都截成两半,然后再次相交错,得到四个上升序列(分别⽤四种颜⾊标了出来):如果此时把末尾的那张 7 移到中间去,你会发现这会打破“四个上升序列”的规律。因此,我们很容易辨认出,在下⾯的扑克牌序列中,7 本该放在后⾯:但是在上⾯的例⼦中,这些上升序列都很短,理论上平均⻓度仅为 13 / 4 = 3.25。因此如果对⽅洗牌技术不佳,魔术就有出错的可能。

不过,如果把 52 张牌洗三次,将产⽣ 8 个上升序列,平均每个上升序列的⻓度为 52 / 8 = 6.5,魔术表演的问题就不⼤了。

五次洗牌也洗不均匀我们可以借助“上升序列”的思路来证明,五次洗牌也不能把牌彻底洗均匀,因为有⼀些排列永远不能仅⽤五次洗牌得到。不妨假设初始时扑克牌的顺序是 1, 2, 3, ..., 51, 52,五次洗牌后最多会产⽣2^5 = 32 个上升序列。

但是 52, 51, ..., 3, 2, 1 这个排列中有 52 个上升序列,因此五次洗牌是绝对洗不出这样的排列的。事实上,所有上升序列数量超过 32 的排列都是五次洗牌⽆法得到的,这就证明了五次洗牌也不能把牌洗均匀。

看来,要想把牌洗开,六次是必需的了。

七次洗牌才⾜够那么,究竟要洗多少次牌,才能让所有排列出现的概率⼤致相同呢?你别说,还真有⼈做过这样的研究。

1992 年,佩尔⻄·戴康尼斯(Persi Diaconis),美国数学家兼专业魔术师,与哥伦⽐亚⼤学的戴夫·拜⽿(Dave Bayer)⼀道,为交叉洗牌法建⽴了⼀个数学模型,分析了包括上升序列在内的扑克牌排列性质,定义了 m 次洗牌后得到的排列分布与平均分布之间的“总变差距离”,最后发表了⼀篇 20 ⻚⻓的论⽂。

他们计算出,当扑克牌有 52 张,洗牌次数分别为 1, 2, ..., 10 时,总变差距离分别为 1.000, 1.000, 1.000, 1.000, 0.924, 0.614, 0.334, 0.167, 0.085 和 0.043。可⻅,五次洗牌才能让整副牌呈现出随机性,直到第七次洗牌才会让随机性显著增加;并且在此之后,总变差距离将⼤致以 1/2 的⽐例依次递减。

因⽽他们的结论就是:七次洗牌才⾜够随机。

他们还对这个问题进⾏了渐近意义上的分析:当 n ⾜够⼤时,需要的洗牌次数⼤约为 3 log2n / 2。如果你不是要变魔术⽽只想玩游戏,建议开⼀盒新牌之后来个漫天花⾬,然后捡起来,可保万⽆⼀失……

UUID: 5ef933a6-b851-4737-81dc-26793af0c877

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/果壳公众号-pdf2txt/2023/果壳_2023-01-29_要洗多少次牌才能彻底洗开?3次?5次总够了吧?呵呵。.txt

是否为广告: 否

处理费用: 0.0048 元