我正在为黑杰克开发一个AI,目前我会跟踪所有已出的牌,并计算AI当前手牌爆牌的概率。
现在我想弄清楚如何计算庄家爆牌或击败我AI的概率。在黑杰克游戏中,庄家有一张明牌和一张暗牌。统计学不是我的强项,但我想要计算那张“未知牌”击败我AI的几率。有人能建议一个计算公式吗?
https://github.com/onetrueallen/blackjackai/blob/master/src/CountCards.java
回答:
我想这样做可能会有效:
- 从完整的牌组中减去所有已出的牌、庄家的明牌以及你手中的牌。这样你就得到了未知牌的集合。
- 计算你手牌的总值。
- 创建一个新的集合,其中包含每个未知牌与庄家已知牌的组合。计算这些组合的总值。
- 计算这些组合中有多少总值会超过你手牌的总值。
- 将这个数量除以庄家手牌加上未知牌的所有组合总数。
- 这就是庄家击败你的概率。