麻将数据分析

一、规则介绍

  本文选择通用的麻将规则,并且没有东南西北风,总共120张牌。数据来源为4个AI麻将循环对局一万场的所有明细数据,AI程度采用的是一般人基本的打牌思路:有碰就碰;能胡即胡,不贪大的;出牌优先级依次为单张无靠、单张有靠和非单张。

二、数据分析

玩家 胡牌场数 占比% 点炮场数 占比%
E 2447 24.47 1834 18.34
S 2405 24.05 1822 18.22
W 2496 24.96 1788 17.88
N 2426 24.26 1856 18.56
黄庄 226 2.26

  这是各玩家的胡牌和点炮场数及概率,从结果来看,完全符合大数定律。也就是在四个玩家技术水平相同的情况下,游戏场数进行到足够多时,每个玩家的胡牌概率接近一致。

胡牌方式 胡牌场数 占比%
多门听 3982 39.82
自摸 2474 24.74
对倒听 1393 13.93
一门听 1390 13.9
单钓 535 5.35
黄庄 226 2.26

麻将数据分析
  其中对倒听能胡的牌只有四张,分别是两个对子的另外两张。一门听能胡的也只有四张,比如边七万,总共4个七万,理论上分析概率应该是相近的,跟这个数据结果相符。而单钓能胡的牌最多只剩3张,所以是最难胡的

万牌 点炮场数 饼牌 点炮场数 条牌 点炮场数 点炮场数
一万 227 一饼 188 一条 173 红中 23
二万 348 二饼 270 二条 244 白板 23
三万 359 三饼 348 三条 292
四万 355 四饼 334 四条 332
五万 384 五饼 386 五条 364
六万 352 六饼 349 六条 288
七万 386 七饼 295 七条 305
八万 280 八饼 234 八条 167
九万 124 九饼 118 九条 105

麻将数据分析
  每张牌点炮的场数,明显看出越靠近中间点炮概率越高,越靠边概率越低,而靠不上牌的中白概率最低。

其它指标 场数 概率
门清次数 2794 28.59
上碰下自摸次数 228 9.21
胡七对的情况 14 0.14
全求人次数 5 0.05

  另外平均每场抓牌数量是35张,刚刚过半,再平均到每人则是8到9张,而第19到45张是胡牌高峰范围。

三、深度分析

  根据麻将游戏规则,点炮的情况下,只有点炮的一个人出钱。而自摸则是另外三家都出钱。那么如果从代码上设定玩家E不自摸不胡,最终结果能否多赢钱呢。结果如下:

玩家 胡牌场数 占比% 点炮场数 占比%
E 545 5.45 2230 22.3
S 2835 28.35 1549 15.49
W 3056 30.56 1541 15.41
N 3154 31.54 1599 15.99
黄庄 150 1.5

  从数据看,玩家E在这个策略下,最终仅胡了545场。而常规情况下,根据前面的数据,自摸总场数为2474,平均每人就是618.5场。为什么只胡自摸的情况下,最后反而自摸的更少呢?
  我觉得可能存在两个方面的原因,一个是当有人点炮时,玩家E不能胡,由于减少了一张能自摸的牌,后面自摸的概率越来越低;一个是作为庄家的场数大量减少,失去庄家优先抓牌的优势,从而减少了原有的自摸概率。
  下面进一步分析庄家的胡牌概率:

类型 场数 占比%
庄家 2764 28.08
闲家 7081 71.92

  如果4个玩家胡牌的概率相等,那么应该分别是25%,而庄家达到了28%。说明庄家确实有点略微的优势。当然,本人的分析不一定准确,试验的数据场数可能还不够多,代码也有可能有bug。如若发现明显错误,欢迎分享交流。

四、补充

  关于麻将的打牌技巧,众多麻将高手有很多自己的心得。比如3和7尽量不打,因为有了3和7就能靠上1到9所有的牌;再比如后半场如果牌太丑了就可以选择弃胡,随便拆牌找最安全的打,以保证不点炮。而采用AI麻将加数据分析的方式,可以从数据上进行验证,从而进一步改善代码的智能程度。
人机麻将实现方式参考:https://blog.csdn.net/usshe/article/details/108015618