为了研究蜘蛛纸牌的规则,我玩了200局!单人蜘蛛接龙(以下简称为“蜘蛛纸牌”)是人们经常在电脑上在线或者离线玩的一款很受欢迎的游戏。由名字可以看出,这个游戏是只有一个玩家的。游戏中一共有两套标准扑克牌,玩家需要按顺序把扑克牌排列成完整的八组(两套牌,各四种花色),从而进一步把它们从台面上消除。牌可以从牌组中提取或者按照特定规则从一列移动到另一列。玩家们一直在抱怨说不同的软件存在偏差。
具体来讲,就是如果程序探测到了玩家的胜率很高,它可能就暗中操纵后面的牌的次序来降低胜率。玩家本身也有可能被偏向从而发挥出最好水平。不过,通过一些基本的统计学手段,我们有可能对这种“偏向的指控”进行证实或者驳斥。这一点也可以作为一个很好的练习,来看看一个人是如何使用在现实世界观察到的数据并配合统计学手段来判断一个假说(比如“蜘蛛纸牌程序是有偏向性的”)是真的还是假的。
基础知识从本文的角度出发,我们这里假设玩家在玩蜘蛛纸牌的时候不使用“撤销”“重来”“加步”(把游戏削减为一个简陋的初始版本),这样玩家就不用考虑计分、花费的时间以及移动的步数了。很多人都认为在这样的条件下游戏几乎赢不了,但是加州州立大学长滩分校的史蒂夫·布朗在他出色的著作《蜘蛛纸牌获胜策略》中给出了一些详细的策略,并且提到在306局游戏中可以取得48.7%的胜率。
同时他也指出自己的玩法还不是完美的,那些专业玩家可以做得更好,甚至达到超过60%的胜率。我利用了布朗的这些策略进行了实验,结果表明确实能够达到超过48.7%的胜率。理想情况下,电脑端蜘蛛纸牌游戏能够模拟真实情况下且洗牌充分的纸牌游戏。如果在游戏的任何一个节点,有N张牌还没被看过,那么每张牌都有1/N的可能性作为下一张翻面的牌出现(为了叙述的方便,我们忽略了具有相同花色和大小的纸牌之间的等价性)。
举个例子,在起始位置我们知道有10张牌被亮了出来。因为总共的104张牌里一共有8张K,所以单张亮出来的牌是K的概率是8/104=1/13,因此亮出来的牌是K的期望张数是10×1/13=10/13。如果在玩了相当多局数的游戏之后,我们发现亮出来K的数目平均下来接近11/13,我们就有理由相信这款蜘蛛牌程序是有偏向性的。