仔细阅读下面的文章,思考文章末尾的互动所提出的问题。严格按照互动在评论区留言:你将有机会获得机械工业出版社提供的高质量科普书籍《天才与算法》。
蜘蛛纸牌(以下简称“蜘蛛纸牌”)是一种流行的游戏,人们经常在电脑上玩在线或离线。从名字可以看出,这个游戏只有一个玩家。游戏中有两套标准扑克牌。玩家需要将扑克牌排列成八个完整的组(两组牌,每组四种颜色),以便进一步将它们从桌上剔除。根据特定的规则,可以从牌组中抽取牌,或者将牌从一列移到另一列。我们不会在这里详细讨论游戏规则,假设我们的读者已经知道游戏规则。如果你需要回忆,你可以看看这里。这里我们只讨论游戏的四个版本。
蜘蛛牌包含两套标准扑克牌。
玩家一直在抱怨不同软件的偏差。具体来说,如果程序检测到玩家的获胜率非常高,它可能会秘密地操纵以下牌的顺序来降低获胜率。玩家自己也可能会偏向于给出他们最好的表现。然而,通过一些基本的统计手段,我们可以证明或反驳这种“有偏见的指控”。这也可以作为一个很好的练习来观察一个人如何使用在现实世界中观察到的数据,并使用统计方法来判断一个假设(如“蜘蛛卡程序是有偏见的”)是真还是假。
基础知识
从本文的角度来看,让我们假设玩家在玩蜘蛛牌时不使用“撤销”、“重做”和“逐步升级”(游戏简化为粗略的初始版本),这样玩家就不需要考虑得分、花费的时间和移动的步数。许多人认为在这种情况下游戏很难获胜,但加州州立大学长滩分校的史蒂夫·布朗在他的优秀著作《蜘蛛纸牌赢策略》中给出了一些详细的策略,并提到在306场游戏中可以达到48.7%的胜率。与此同时,他也指出自己的打法并不完美,那些职业球员可以做得更好,甚至达到60%以上的胜率。我用布朗的策略进行了实验,结果表明我真的可以取得超过48.7%的成功率。
理想情况下,基于计算机的蜘蛛纸牌游戏可以模拟真实世界的纸牌游戏,并具有足够的洗牌能力。如果有N张牌在游戏的任何节点都没有出现,那么每张牌都有1/N的概率出现在下一个翻牌圈(为了描述方便,我们忽略了相同花色和大小的牌之间的等价性)。例如,在起始位置,我们知道有10张牌被点亮。因为总共104张卡中有8 K张卡,所以单个西恩带着K出来的概率是8/104=1/13,所以预计出来的卡数是10×1/13=10/13。如果在玩了几轮游戏后,我们发现突出显示的K的数量平均接近11/13,我们有理由相信这个蜘蛛卡程序是有偏见的。
测试数据
对于每一场游戏,我们都想记录一组能反映纸牌好坏的数据。数字越高,获胜的机会就越大。我们想出了一个计划,在一个绝对公平公正的游戏中评估这些测试数据的价值,然后将它们与我们怀疑可能有偏见的游戏中记录的数据进行比较。
一旦确定了前十张牌,我们就可以计算“保证回合数”(GT),即玩家在被迫换到另一行之前可以确定的最小牌数。每当确定了新一行的十张牌,我们就可以进行类似的计算,并假装这是一个新游戏的开始。这样,我们就可以计算出GT (AGT)的平均值。如果经过几轮后,GT值很小,玩家将会有麻烦。应该注意的是,AGT与玩家本身无关,所以通过进行许多实验(即确定许多行)来模拟AGT的概率分布是容易的。
从经验来看,如果纸牌的整体分配更差,玩家也会陷入麻烦。例如,当有七个Q但只有两个J没有被输入时,即使一个或多个列被清除空,仍然会有问题。因此,这里定义了总平方变化(TSV),并且该值是相邻大小的卡片数量的负平方的总和。在刚才的例子中,7个Q和2个J将在求和时贡献一个项目-(7-2)2=-25。此处取负值是为了确保TSV的增减与获胜概率的增减一致,就像AGT一样。每次我们展示一张新卡,我们计算TSV,这样我们就可以计算一场比赛的平均TSV(ATSV)。应该注意的是,ATSV也与玩家无关。我们假设玩游戏的玩家将以随机的顺序展示所有的牌(尽管玩家可以选择先展示哪张牌,展示每张牌的概率是相同的)。幸运的是,这可以通过模拟轻松实现。
蜘蛛牌的典型散点图(赢,X =输)
上面显示了一个典型的散点图,蓝色圆圈和红色十字依次表示胜利和失败。
仿真结果表明,对于无偏见的游戏程序,在大量游戏后,AGT应等于3.96,ATSV应等于-32.29。在以下示例的起始位置,GT=1,TSV=-42,因为游戏还没有结束,我们还不知道AGT和ATSV的值。
例如,起始位置GT=1,TSV=-42
计算如下:
假设检验
为了测试蜘蛛纸牌游戏是否有偏见,我们使用了一种叫做假设检验的方法。让我们先做一个零假设(这意味着我们怀疑的效果可能不存在),指的是“蜘蛛牌程序没有偏见”,而补充假设是“蜘蛛牌程序故意使玩家的中奖率降低”。
首先,选择一个较大的数字n作为蜘蛛纸牌游戏中要检测的轮数,然后我们每轮计算一次AGT和ATSV。下面的一般想法是找出我们想要比较的观察结果的概率(即p值),或者更极端的是,零假设为真的概率(即程序没有偏差)。如果概率低于某个阈值(即显著性水平),无偏见的程序不太可能产生我们在n个游戏中观察到的AGT和ATSV值,然后我们拒绝零假设并得出游戏有偏见的结论。
我们如何计算P值,即观察到我们已经观察到的AGT和ATSV值的概率(这证明了游戏没有偏见)?在仿真中,我们得到了AGT和ATSV在无偏博弈中的期望值,分别为3.96和-32.9。更有趣的是,概率论将告诉我们AGT和ATSV值是如何在无偏见的游戏中分布的。换句话说,它可以帮助我们计算观察特定AGT和ATSV值的概率。所谓的“学生t测试”可以将所有这些值考虑在内,并获得所需的p值。这里将跳过细节。有兴趣的人可以参考概率统计的相关内容。
从本文的角度来看,我们选择了N=100作为我们玩这个游戏程序要测试的轮数,并且得到了0.05的显著性水平值。
胜率估计
除了AGT和ATSV,我们还想评估“无偏见”蜘蛛卡计划的“真实”获胜概率。一个显而易见的困难在于,获胜率与玩家有关,因此很难验证“一个玩家可以赢得50%的游戏”的说法。另一种情况是,我在不同的蜘蛛纸牌游戏程序中赢了45%到60%,并且没有证据表明我的赢率在使用这些程序期间有所提高(也就是说,我的赢率没有显示出与时间正相关)。
pip kin ' Sidi ot ' SDE light solitaire server是一个有趣的免费在线纸牌游戏网站,包含许多纸牌游戏。它允许玩家在1到999999之间指定一个“种子号”。例如,如果种子的数量是142857,最初的10张卡将总是2J56J9JQ59,但是组合将是不同的。应该注意的是,如果玩家在游戏前随机产生一长串种子,程序不能根据玩家的获胜率调整难度。正是因为这个原因,你可以选择这个网站来估计胜率。
当假设为真时拒绝零假设被称为第一类错误,其概率等于显著性水平。假设检验中的另一种错误被称为第二种错误,指的是当零假设为假时接受零假设。
我在《白痴的喜悦》上玩了100个游戏,用了1到100个种子。最后,我赢了59场比赛,输了41场。所以我估计当我玩“不偏不倚”的蜘蛛牌游戏时,胜率将在59%左右。
测定值
我玩了100轮蜘蛛纸牌游戏。虽然我选择在这里玩游戏,但在实验之后,这里的游戏体验真的很“糟糕”:虽然我能赢,但即使是最优秀的玩家也很难玩。每场比赛都记录了比赛的输赢结果以及AGT和ATSV的数据。我观察到AGT和ATSV的P值分别为0.115和0.201。这意味着AGT和ATSV的数据都低于预期(也就是说,玩家会受到影响),但是因为这两个值都高于我们的阈值0.05,所以它们在统计上是不重要的:这可能是由于意外变化导致的较低值的出现。
不幸的是,我只赢了其中的46场,比预期少了13场。这表明可能需要进一步的测试和验证。然而,要知道每个玩家的胜率是不同的,我可能还没有在100轮中发挥出我的最佳水平。
我由此得出的结论是,没有足够的证据证明免费蜘蛛纸牌游戏程序是有偏见的。46场比赛的胜利数量有点令人沮丧,但这一过程确实经受住了考验。然而,其他的蜘蛛卡程序可能就没那么幸运了。
作者:陶哲渊
翻译:丹尼斯
审校:诺尔
原始链接:
https://plus.maths.org/content/spider-solitaire
田
祝福
田
利润
向
当...的时候
商
在...之间
今天我们将送出由机械工业出版社提供的高质量科普读物《天才与算法》。
美国和英国院士马库斯·杜·西奥特伊斯的巅峰之作。我们即将进入一个由算法主导的世界。人工智能将在绘画、音乐、写作等方面挑战人类。作者用数学帮助我们理解算法和创造力的本质,帮助人类创造一个人类和机器共存的美好未来。
阅读这本书,你会惊叹于思考的美丽和知识的广博。你也会惊叹于人类创造力的严谨逻辑和音乐节奏。
[互动问题:你在生活中使用了哪些具体的统计知识?】
请严格遵守互动:以问题答案的形式在评论区留言参与互动,格式不符合要求的无效。
*此活动仅限于微信平台
编辑:aki
点击标题查看
1.陶瓦。你首先看岛中湖中的岛
2.只有通过这位20岁的天才科学家的论文,你才能用手机拍照和发送朋友。
3.空中射击空。子弹落下时还有损伤吗?| 206号
4.乐高能被悬挂在一半空吗?数百万人被震惊了!
古装电影中的射箭让物理学家们开怀大笑。我们能更专业点吗?
6.即使它被淹没,它也不会窒息。这是什么神奇的液体?
7.在数学课上拿起橡皮擦,我无法理解毕达哥拉斯定理
8.物理学写给你的情书
9.唯一两次获得诺贝尔物理学奖的人,但你不一定认识他
我妈妈问我为什么我的桌子这么乱!