麻将胡牌算法之爆破法

  |   1 评论   |   828 浏览

何谓 “麻将”

百度百科

说在胡牌之前

红中麻将,无东南西北风以及发财和白板,保留红中作为固定的赖子(又叫宝,可替代任意其他牌型)。任意牌型(不限二五八)一对均可作为掌门(又叫将),准碰不许吃,不准闲胡只许自摸。

3N+2,一副手牌如果胡牌,必定遵循3N+2的手牌牌型,即n(可以为0)组顺子/暗刻+一对将

暴力破解胡牌法

不含赖子

思路概要,将手牌排序后,遍历手牌,找出能作为掌门的牌型(>=2个),依次尝试作为掌门,看剩下的手牌是否能组成3N牌型

包含赖子

思路概要,将手牌排序后,找到所有的赖子,然后使用递归(可优化点)将手牌中的赖子可以替代的所有牌型组合罗列出来,再逐组与剩下的非赖子手牌组合,按照不含赖子的思路验证是否胡牌

实战&demo

Github红中麻将

优缺点

  • 优点?:简单粗暴易理解
  • 缺点?:计算量较大,当遇到数个赖子时,耗费时间指数级上涨

评论

发表评论

validate