Pattern test

形态检验器

输入一个形态,比如 BBBP。它会在指定数量的随机牌靴里数一遍:这个形态出现了多少次,之后开庄的比例是多少,偏离理论值多远,以及——最关键的——这个偏离在校正之后还站不站得住。

Method

算法

牌靴用八副牌完整补牌规则在你的浏览器里现场生成,和局跳过不计入形态。数完之后做单比例检验,再按同长度形态的总数(2^k 个)做 Bonferroni 校正。这一步是整个工具的重点:在几千个候选形态里筛出一个 p<0.05,是必然会发生的事,不是发现。

完整推导 →

怎么读

「显著」是怎么被筛出来的

问题不在你找到了什么,在你找了多少次

p < 0.05 的意思是:如果这个形态毫无预测力,纯靠运气也有 5% 的机会看起来这么扎眼。测一个形态,这个门槛是合理的。问题是没有人只测一个。长度为 6 的形态一共有 64 种,你把它们全扫一遍,期望能筛出 3.2 个「显著」的——在完全随机的数据里。至少出现一个的概率是 96.2%。

这正是路单「有效」的来源

把这张表倒过来读:任何人翻够多的牌局记录,一定能找到某个形态之后庄特别多。找到它不需要任何规律存在,只需要候选够多。这不是统计学的缺陷,是统计学在正确工作——它告诉你这个发现不该让你惊讶。真正该惊讶的是校正之后它还在。

Bonferroni 校正做了什么

它把门槛从 0.05 除以候选个数。长度 6 的形态,门槛变成 0.00078。这很严厉,严厉到可能漏掉真实的小效应——但在这个场景里是对的:我们事先知道形态里不存在任何信息(牌是随机生成的),所以任何通不过校正的「发现」都应该被丢掉。工具本身会同时显示校正前和校正后的结论,你可以亲眼看到那个差别。

在完全随机的牌局里,扫描全部同长度形态会"发现"多少个显著结果
形态长度候选形态数期望"显著"个数至少一个显著的概率Bonferroni 门槛
3 位(如 BBP) 80.4033.7%0.0063
4 位(如 BBPB) 160.8056.0%0.0031
5 位 321.6080.6%0.0016
6 位 643.2096.2%0.00078
7 位 1286.4099.9%0.00039
8 位 25612.80> 99.99%0.00020

以 α = 0.05 为单次检验门槛。「期望个数」= 0.05 × 2^k,「至少一个」= 1 − 0.95^(2^k)。数据里没有任何可预测的结构——这些全部是假阳性。

常见问题

路单形态真的完全没有预测力吗?
在牌靴充分洗匀的前提下,没有。原因不是统计上没找到,而是机制上不存在:每一手的概率只取决于剩余牌堆的组成,而前面开庄还是开闲几乎不改变剩余牌堆的点数分布。唯一真实的记忆效应来自不放回发牌,量级在小数点后第四位,远小于房屋优势。
如果校正之后仍然显著怎么办?
多跑几次,换不同的牌靴数。校正后的门槛是 0.00078(长度 6),在随机数据里偶尔还是会被触发——这正是「门槛」而不是「保证」的含义。如果它每次都出现,那是生成器有问题;如果十次里出现一次,那就是你碰上了那一次。
为什么要跳过和局?
因为路单本身就是这么记的:大路上和局画一条斜线,不断开庄闲的序列。要检验的是「路单形态」这个东西,就得按路单的规则来数。和局占 9.52%,如果计入会让形态长度的含义和实际看到的路单对不上。
这个工具会不会帮我找到一个能用的形态?
不会,它的设计目的恰好相反。它让你亲手做一遍「扫描—发现—校正—落空」的全过程,看清所谓规律是怎么从随机数据里被筛出来的。如果你用它在真实牌局记录上找到了什么,这张表就是提醒你:先问问自己一共看了多少个候选。