php麻将机器人ai算法,高性能麻将AI算法

想要一个高性能的麻将AI算法,这个问题我们拆解成2个子集来思考,“高性能”,“麻将AI算法”,我们先针对麻将AI算法来讨论。

麻将AI

“麻将AI”,什么样的才叫AI,在很多项目中,并不严格要求可以与人类顶尖高手pk能力的AI,而是麻将选手陪玩机器人,基本做到一般人类选手的水平。那么这个问题我们可以继续修改“一般能力麻将AI”。

现在我们来继续分解这个“一般能力麻将AI”,我们可以把这个AI变成”一个不懂得算桌子上牌,只会盯着自己牌的选手,然后可以得出我打出哪张牌后,我胡牌几率最大的人”。

根据上篇的,麻将胡牌算法我们可以得出,如果想得出“胡牌”的概念可以用得到3N的牌面以及3N+2的说法替代。所以这个时候问题变成“只会盯着自己牌的选手,针对同一种花色,计算出这个花色的牌打出一张后,变成3N或者3N+2的几率多大”。

此时就有一个问题了,针对一种花色在很多牌面中,我打出一张牌的张数并不是3N或者3N+2,这个时候怎么办?这里可以用到一个近似解,“在某个特定的array中,我需要补多少张,才可以得到3N或者3N+2的组合”,为了简单说明起见,后续只说明如何构造3N的牌型。

这个时候还剩下最后一个问题了,概率问题如何结算,这个可以通过回溯来求去最大解,来了牌值大小为1到9的一个集合,每次抽取1张,然后可以构成3N,需要抽取多轮。这个就是个9叉树,然后通过一定的剪枝手段来控制树的总大小。伪代码如下

// array 表示手牌,level代表补的张数

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值