#P2005. Blackjack
Blackjack
问题描述
在二十一点(Blackjack)纸牌游戏中,玩家和庄家最初各发两张牌。庄家的一张牌是明牌(玩家可以看到),另一张牌是暗牌(玩家看不到)。给定玩家手中的两张初始牌和庄家的明牌,要求计算玩家手中的两张牌比庄家的两张牌更优的概率。这是一个复杂的问题,因为随着游戏的进行,牌是从牌堆中无放回地抽取的,所以概率会发生变化。为了简化问题,我们仅在牌刚从牌堆中发出时计算概率,即之前没有从牌堆中发出任何牌。
游戏规则
牌的点数: 的点数可以是 或 (由持牌人选择)。 人头牌的点数为 。 其余牌的点数为其面值(例如, 的点数为 ,依此类推)。 玩家获胜的条件: 玩家手中的牌的总点数不超过 。 玩家手中的牌的总点数高于庄家的总点数,或者庄家的总点数超过 。 特殊说明: 在仅考虑两张牌的情况下,总点数不可能超过 。 熟练的玩家会记住已经发出的牌,并据此做出决策。为了增加难度,许多赌场使用多副牌进行游戏。每副牌有 张,每种牌各有 张。
输入
输入由多个测试用例组成。 每个测试用例的第一行是一个正整数 ,表示使用的牌副数。 第二行包含 个字符(用空格分隔),这些字符来自集合 ,分别表示庄家的明牌和玩家手中的两张牌。 假设 副牌已经被随机洗在一起。 输入的结束由 表示。
输出
对于每个发牌情况,输出获胜的概率(以百分比表示),保留三位小数。 每个测试用例的输出之间用空行分隔。
示例输入
1
T A J
4
2 3 4
0
示例输出
93.878%
21.951%
来源
Rocky Mountain 2004