分享
分享赚钱 收藏 举报 版权申诉 / 41

类型揭秘21点——BLACKJACK.pdf

  • 上传人:HR专家
  • 文档编号:5958787
  • 上传时间:2019-03-22
  • 格式:PDF
  • 页数:41
  • 大小:809.72KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    揭秘21点——BLACKJACK.pdf
    资源描述:

    1、1 揭秘 21 点 BLACKJACK 【摘要】 21 点作为一种经典的赌博游戏, 从二十世纪起流行至今, 是各大赌场的必备 项目之一。本文利用概率论的知识,通过编程来分析 21 点游戏中的庄家与闲家 在各种情况下的最优决策问题。 所研究的问题主要可分为三个部分。首先探讨庄家采用传统的“17 点策略” 后在得到已知明牌的情况下最终拿牌情形的对应概率。 这里使用五维数组模拟了 所有样本点, 采用古典概型计算得到条件概率。 其次研究闲家在知道庄家明牌及 己方现有手牌的情况下的最优策略。 并利用第一部分所得到的数据, 采用倒推归 纳的方法, 在反复修正模型后解决了这一本文的核心问题。 最后通过模拟大

    2、量实 际牌局的情况来估计真实的概率及闲家获胜期望,并运用上述方法来证实庄家 “17 点策略”比“16 点策略”要优秀。 虽然本文通过研究得出较优秀的闲家决策, 但从数学期望上看闲家仍旧无法 扭转劣势。因此劝诫读者远离赌博,不要心存侥幸心理。 【关键词】 21 点 BLACKJACK 赌博 期望 策略 2 目录 一、 问题叙述 1 (一) 21 点的历史起源 . 1 (二) 21 点的玩法与规则 . 1 (三) 21 点的相关术语 . 2 二、 模型假设 3 三、 模型建立 3 (一) 计算P(y|x) 4 (二) 求解闲家 决 策 4 1. 闲家没有 拿 到Ace . 4 2. 闲家已经 拿

    3、到Ace . 6 (三) 实际牌局 模 拟过程设 计 10 四、 模型求解 10 (一) 求解a(x,y) 10 (二) 求解闲家 决 策 11 (三) 实际牌局 的 模拟 12 五、 结果显示 与 分析 13 (一) 结果显示 13 (二) 结果分析 13 1. 从赌徒破 产 模型作分 析 13 2. 从经济学 角 度作出分 析 15 3. 引入之前 暂 时不考虑 的 规则 15 六、 模型评价 16 (一) 从闲家的 角 度看最优 决 策 16 (二) 从庄家的 角 度看最优 决 策 17 (三) 惊现Nash 均衡 18 七、 参考文献 18 八、 附录 191 一、 问题叙述 ( 一)

    4、 21 点的历 史起源 探寻二十一点的起源就像探寻打扑克的起源一样, 无处可查。 一些历史学家 认为扑克牌上的人物图像可以推溯至中国的唐朝, 唐朝钱币上用皇后、 国王、 卫 士三种不同图案区别币值大小。欧洲打牌最早在 14 世纪中叶一个瑞士和尚写的 一本书里有所提及。到 16 世纪末,一种被称作 Bassette 的赌博游 戏风行整个欧 洲大陆。这个游戏使用的是意大利纸牌。四副牌共 78 张,每副牌中有四张带有 人像图案的纸牌 (J ,Q ,K,大王) ,牌 10 或带有数字的纸牌, 还有 21 张将牌; 人们通常认为它就是流行于今天的扑克牌 (共 52 张牌) 的鼻祖。18 世纪末的欧 洲,

    5、bassette 游戏让位于猜下一张是什么牌的法罗牌游戏。 1803 年, 法罗牌戏经新奥尔良和密西西比河流域上游传入美国。19 及 20 世 纪,法罗 牌 在美国一 直 非常盛行 。Comstock 时期,内 华 达开设了 三 百家法罗牌 俱乐部。 但后来法罗牌就销声匿迹了。 对于为什么法罗牌会在 20 世纪 50 年代销 声匿迹的理论研究同 20 世纪早期 Anasazi 禁 止在内华达州开展 Pueblo Grande de 的研究一样多。 法国宣称 二十 一点游 戏来 源于他 们国 家的 vingt-et-un 游戏(单单字面 来看是 20 和 1,因 为法文数字本身的复杂性,就是简单

    6、的 21) , 因此在广为流行后该游 戏就叫“21” 。在 19 世纪广泛流行于美国大陆。现代二十一点游戏最早可以追溯 至 20 世纪 早期 Evansvelle 、印度 的地下赌博。在这里,庄家在对手的两张牌合 计为 21 点数,其中一张牌还是黑桃或草花 J 时,就会给与额外的奖励,付给对 手 5 美元,blackjack 由此得名。1931 年,当内华达州宣布赌博为合法活动时, 二十一点游戏 第一次公开 出现在内华 达州的赌场 俱乐部,15 年内,它 取代掷骰 子游戏,而一举成为非常流行的赌场庄家参与的赌博游戏。 ( 二) 21 点的玩 法与规 则 21 点一般用到 1-8 副牌。 庄家给

    7、每个玩家发两张牌, 牌面朝下; 给自己发两 张牌, 一张 牌面朝 上( 叫明牌) , 一张牌 面朝 下( 叫暗牌) 。大家 手中 扑克点 数的 计 算是:K 、Q 、J 和 10 牌都算作 10 点。 A 牌既可算作 1 点也可算作 11 点, 由玩家自己决定。其余所有 2 至 9 牌均按其原面值计算。 首先玩家开始要牌, 如果玩家拿到的前两张牌是一张 A 和一张 10 点牌, 就 拥有黑杰克 (Blackjack) ;此时,如果庄家没有黑杰克,玩家就能赢得 2 倍的 赌 金(1 赔 2) 。 没有黑杰克的玩家可以继续拿牌, 可以随意要多少张。 目的是尽 量 往 21 点靠, 靠得越近越好,

    8、最好就是 21 点了。 在要牌的过程中, 如果所有的 牌 加起来超过 21 点,玩家就输了叫爆掉(Bust),游 戏也就结束了。 假如玩家没爆掉,又决定不再要牌了,这时庄家就把他的那张暗牌打开来。 庄家根据自己的情况拿牌,一般到 17 点或 17 点以上不再拿牌,但也有可能 15 到 16 点甚至 12 到 13 点就不再拿牌或者 18 到 19 点继续拿牌。 假如庄家爆掉了, 那他就输了。 假如他没爆掉, 那么你就与他比点数大小, 大为赢。 一样的点数 为2 平手,你可以把你的赌注拿回来。如果谁先拿到 5 张牌, 并且总数不到 21 点, 那这种情况能压住一切牌型(包括 blackjack

    9、) ,且立刻获胜。 ( 三) 21 点的相 关术语 花 牌(K 、Q 、J) 和 10 都计算为 10 点。A 牌可作 1 ( 称为硬牌) 或 11 (称 为软牌)点计。 其它牌则按照牌面上的点数计算。 黑杰克 (blackjack ) : 一手牌内两张牌的点数相加合共达 21 点(如 A 牌和 一张花牌或 10 点牌) 。 拿牌(HIT) :再拿一张牌。玩家(包括闲家和庄家)只要手上牌相加点数不 超过 21 点都可要牌。 停牌(STAND) :不再拿牌。在任何情况下,玩家可选择停止要牌。 分牌(SPLIT) :玩家再下一注与原赌注相等的赌金,并将前两张牌分为两副 单独的牌。这两张牌的点数必须

    10、相同(即一对 8、一对 K 或一对 Q ,某些玩法 中两张 10 点的牌如一张 10 一张 Q 时也可分牌) 。 但分牌后的黑杰克, 只能作普 通 21 点计算,其赔率只是 1 赔 1。若第三张仍与前两张相同,可继续 split ,第 四张相同牌则不可分, 只能作为第一张的第二张牌。 分牌必须下同倍注码, 分牌 可任意补牌,来“A” 时例外,分牌只补 1 张,按最大点计算。每墩牌的输赢独立 比较,每墩赌注都等于预先下注的数额。 双倍下注(DOUBLE) : 玩家在拿到前两张牌之后, 可以再下一注与原赌注相 等的赌金(如 果觉得少可 以加倍) ,然后只能再 拿一张牌。 如果拿到黑 杰克,则 不许

    11、双倍下注。 (部分玩法中拿到 3 张或 3 张以上也可选择双倍下注,但同样只 能再拿一张牌,这里在 3 张或以上是不能 DOUBLE ) 保险(INSURANCE) : 如果庄家牌 面朝上的牌 是 A ,玩 家可以买保 险,也就 是相当于原赌注一半的额外赌金。 如果玩家确信庄家下一张是 10 点牌, 则可以 买保险。 如果庄家确实有黑杰克, 玩家将赢得 2 倍的保险赌金; 如果庄家没有黑 杰克, 玩家将输掉保险赌金, 游戏照常继续。 黑杰克要大于其它总点数为 21 点 的牌。 (部分玩法中不允许买保险) 投降: 如玩 家手上只拥有两张牌, 便有权选择投降, 退回 一半的投注金 (庄 家反开的牌

    12、不是 A 时才适用) 。 赢局:a ) 玩家将评定为赢如其牌面是黑杰克(庄家不是同时获得黑杰克, 但庄家拿到 5 张不爆的时候算庄家赢); b ) 玩家点数较庄家点数接近 21 点(但 不超过 21 点) ; c ) 庄家点数超过 21 点(玩家点数不超过 21 点) ; d ) 玩家拿 到 5 张牌且点数不超过 21 点则立刻获胜。 平手:a) 玩家手上牌的点数与庄家的点数相同;b ) 同是黑杰克的时候。 双 方便没有输赢,投注金将退回给玩家。 庄家赢局:a ) 庄家是黑杰克(但玩家不是同时获得黑杰克) ;b ) 庄家 点 数 较玩家点数接近 21 点 (但不超过 21点) ; c ) 玩家

    13、点数 已超过 21 点 (无论庄家 点数是否超过 21点) ; d ) 庄家拿到 5 张牌不超过 21 点。 赔率:黑杰克 1 赔 2,保险 1 赔 2,其它为 1 赔 1。 H 拿牌(Hit) S 停牌(Stand) D 双倍下注(Double) 3 二、 模型假设 由于要牌概率实际情况的计算比较麻烦, 故考虑以无穷多副扑克牌参加游戏 的情况, 拿到每一张牌的概率为 1/13, 能大大提高计算效率。 且实际赌局中常以 8 副牌参加游戏, 因此假设与实际情况差距不大。 而且, 无穷副牌的假设也是有 道理的。在现 代的赌场中 每玩一局都 会用洗牌机 洗一次牌, 用来防止闲 家算牌。 这样的话,在

    14、 8 副牌的游戏里,每一张牌的概率为 1/13 是合理的假设。 关于保险(Insurance) , 底牌点数为 10 的概率是 4/13 ,约为 30% 。庄家为是 21 点时,分配是 2 比 1,对闲家来说不利,因此在制定策略时不考虑保险。 关于分牌(Split) ,这会导致后期的编程比较麻烦,因为在分牌之后,一局牌 变成了两局了, 还要重新生成一个新的牌局。 至少在现在看来可以暂时不考虑引 入分牌的决策。 关于赔率的设定, 暂时考虑 1 赔 1 的情形, 就是即使闲家拿到 blackjack 的时 候,闲家也只能赢到平时的钱。 关于双倍下 注(Double) ,在建模的 整个过程中 ,暂时

    15、不考 虑双倍下 注 double 的情形, 以方便完成各种数据及程序的处理。 但是在最后会按照已经给出来的数 据,来给出一种关于引入双倍下注(Double) 的 决策方案。 关于投降,与 Double 的情形一样,暂时不引入投降。但是,在文章的最后 给出引入了投降之后的决策方案。 下面是重点,关于庄家的决策。 首先经过大量的资料查询,大部分的赌场的庄家都是在大于等于 17 点时便 不再拿牌。 在建模之处, 考虑固定庄家的决策, 以方便给出闲家决策。 而且这 一 假设在大部分的赌场上都是对的, 那么假设具有一定的合理性与真实性, 具有实 际意义。不过这一假设存在另一个问题,当庄家拿到 16 点时

    16、,庄家其实可以不 拿牌, 因为庄家爆掉的概率超过 50% , 而且拿到牌之后赢的概率不见得很大。 在 分析模型的合理性时,对庄家的另一决策大于等于 16 的时候不再拿牌,再 做一次模型。然后对比 17 与 16 的结果,从而说明 17 点的决策对庄家来说是一 种较优的策略。 至于闲家的决策, 可以认为闲家知道庄家的决策。 具体而言就是大于等于 17 点后不再拿牌或者是大于等于 16 的时候不再拿牌。这样的话,闲家可以根据庄 家的决策及庄家的明牌就可以得到自己的最优决策。 三、 模型建立 模型的建立分为两部分。 第一部分为计算庄家在明牌为 x 情况下, 拿到 y 的 概率。 拿到 5 张仍然不爆

    17、令 y=0, 在张数小于 5 且拿到 17 点、18 点、19 点、20 点和 21 点 (非 blackjack ) 情况下分别将 y 赋值为 1、2、3、4、5, 拿到 blackjack 的情况下令 y=6,如果点数超过 21,令 y=7。将概率记为 P(y|x) 。 Y= 0 1 2 3 4 5 6 7 庄家情形 五张不爆 17 点 18 点 19 点 20 点 21 点 Blackjack Burst 4 ( 一) 计算 P(y|x) 计算 P(y|x) ,使用的是枚举法以及全概率公式的知识。 首先建立一个 5 维的数组(a1 ,a2 ,a3 ,a4 ,a5 ) ,ai 为 一个取值

    18、 1 至 13 的 整数变量, 而 11 、12、13 作为花牌, 实际计算取值为 10,a1 表示庄家明牌。 给 定任意的一个上述的 5 维数组, 在现行通用庄家决策下庄家的牌面和被唯一决定。 具体的决策是, 当庄家的点数小于 17 的时候, 继续要牌, 大于等于 17 时停止要 牌。如果庄家拿到 Ace ,则考虑软牌是否大于 21。如果大于 21,则不能把 Ace 算作软牌,否 则考虑是否 到 17 。没 有到则继续 要牌,否则 不要牌。建 立一个二 维数组 a(x,y) ,存储 x,y 分别与前文所给变量对应时的个数。 那么由古典概型,P(y|x)= P(x,y) p(x) = a(x,

    19、y) a(x,y) y ,可计算得 P(y|x) 。 ( 二) 求解闲家 决策 在确定庄家决策及 P(y|x) 情况下,试图给出闲家最优决策。本文分开两部分 来叙述。并且 我们需要考虑这样的一 个引理: 如果闲家 每次 的决策都是 最优的, 那么得到的最终决策也是最优的。即单步最优得到总的最优的决策。 1. 闲家没有 拿到 Ace 1) 计算前的 准备 首先考虑闲家拿到了点数 a 且闲家没有拿到 Ace 的情形下, 选择不拿牌获胜 的概率。并且以下均不考虑闲家能拿到 5 张 牌不爆的情况。如果 a 小于 17,除 非庄家爆掉,否则闲家无法获胜,且不可能产生平局。如果 a 大于 等于 17,那

    20、么闲家获胜的的情形为庄家拿到的牌小于 17 和庄家爆掉。这里还需要考虑庄家 的明牌 x 的条件概率。 为了方便下文的叙述,我们引进一些变量。 W(a|x)庄家明牌 x 的情形下,闲家不拿牌获胜的概率 D(a|x) 庄家明牌 x 的情形下,闲家不拿牌平局的概率 E(a|x) 庄家明牌 x 的情形下,闲家不拿牌赢钱的期望值(每局赌注为 1 元) E(a|x)=W(a|x)-(1-W(a|x)-D(a|x)=2*W(a|x)+D(a|x)-1 w(a|x) 庄家明牌 x 的情形下,闲家拿牌获胜的概率 d(a|x) 庄家明牌 x 的情形下,闲家拿牌平局的概率 e(a|x) 庄家明牌 x 的情形下,闲家

    21、不拿牌赢钱的期望值(每局赌注为 1 元) e(a|x)=w(a|x)-(1-w(a|x)-d(a|x)=2*w(a|x)+d(a|x)-1 5 rw(a|x) 实际获胜概率 rd(a|x) 实际平局概率 r(a|x) 实际决策(r(a|x)d 的值 为 0 表示拿牌,1 表示不拿牌) re(a|x) 实际的赢钱期望 2) 具体的计 算公式 如果闲家选择了拿牌,采用倒叙的递推来计算,具体的思路是先计算出 21 点时候闲家拿 牌的获胜概 率与平局概 率,这个显 然可以直接 得到结果, 都是 0 。 此时可以用赢钱期望来得到闲家选择拿牌还是不拿牌,公式如下: (1) 当 a=21 时, W(21|x

    22、)= P(1|x)+P(2|x)+P(3|x)+P(4|x)+P(7|x) D(21|x)= P(5|x) E(21|x)= 2*W(21|x)+D(21|x)-1 w(21|x)=0 d(21|x)=0 e(21|x)=1 如果 E(21|x)e(21|x) ,那么闲家选择不拿牌,反之,闲家选择拿牌。由此 得 出 具 体决 策。 这里使用另外的数组来保存此时的实际获胜概率 rw(a|x) 、实际平 局概率 rd(a|x) 、 实际决策 r(a|x) 与 实际的赢钱期望 re(a|x) (r(a|x)d 的值为 0 表示拿 牌, 1 表示不拿牌) (就是说决策的情形闲家以后都不会采纳) 。 下

    23、面给出 W(a|x) 、 D(a|x) 、w(a|x) 、d(a|x) 的计算公式。 (2) 当 a=20 时, W(20|x)= P(1|x)+P(2|x)+P(3|x)+P(7|x) D(20|x)= P(4|x) w(20|x)=rw(21|x)/13 d(20|x)=rd(21|x)/13 (3) 当 a=19 时, W(19|x)= P(1|x)+P(2|x)+P(7|x) D(19|x)= P(3|x) w(19|x)=rw(21|x)+rw(20|x)/13 d(19|x)=rd(21|x)+rd(20|x)/13 (4) 当 a=18 时, W(18|x)= P(1|x)+P(

    24、7|x) D(18|x)= P(2|x) w(18|x)=rw(21|x)+rw(20|x)+rw(19|x)/13 d(18|x)=rd(21|x)+rd(20|x)+rd(19|x)/13 (5) 当 a=17 时, W(17|x)= P(7|x) D(17|x)= P(1|x) w(17|x)=rw(21|x)+rw(20|x)+rw(19|x)+rw(18|x)/13 d(17|x)=rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x)/13 6 (6) 当 a=16 时, W(16|x)= P(7|x) D(16|x)= 0 w(16|x)=rw(21|x)+rw(

    25、20|x)+rw(19|x)+rw(18|x)+rw(17|x)/13 d(16|x)=rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x)+rd(17|x)/13 由于在 a 16 时,W(a|x) 与 D(a|x) 的计算方 法不 变,下 文不 再重复 ,只 写出 w(a|x) 与 d(a|x) 的计算公 式。 (7) 当 a=15 时, w(15|x)=rw(21|x)+rw(20|x)+rw(19|x)+rw(18|x)+rw(17|x)+rw(16|x)/13 d(15|x)=rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x)+rd(17|x)+

    26、rd(16|x)/13 (8) 当 a=14 时, w(14|x)=rw(21|x)+rw(20|x)+rw(19|x)+rw(18|x)+rw(17|x)+rw(16|x)+rw(15|x)/13 d(14|x)=rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x)+rd(17|x)+rd(16|x)+rd(15|x)/13 (9) 当 a=13 时, w(13|x)=rw(21|x)+rw(20|x)+rw(19|x)+rw(18|x)+rw(17|x)+rw(16|x)+rw(15|x) +rw(14|x)/13 d(13|x)=rd(21|x)+rd(20|x)+rd

    27、(19|x)+rd(18|x)+rd(17|x)+rd(16|x)+rd(15|x) +rd(14|x)/13 (10) 当 a=12 时, w(12|x)=rw(21|x)+rw(20|x)+rw(19|x)+rw(18|x)+rw(17|x)+rw(16|x)+rw(15|x) +rw(14|x)+rw(13|x)/13 d(12|x)=rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x)+rd(17|x)+rd(16|x)+rd(15|x)+rd(14|x)+r d(13|x)/13 (11) 当 a=11 时,情况有所不一样。拿到 10 或者 J 、Q 、K 的点数

    28、都为 10,计算 公式有所改变。 w(11|x)=4*rw(21|x)+rw(20|x)+rw(19|x)+rw(18|x)+rw(17|x)+rw(16|x)+rw(15|x) +rw(14|x)+rw(13|x)+rw(12|x)/13 d(11|x)=4*rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x)+rd(17|x)+rd(16|x)+rd(15|x) +rd(14|x)+rd(13|x)+rd(12|x)/13 (12) 当 a 10 时, 情况与 11 时类似, 有统一的公式。 因为在拿到 Ace 的时候要把 Ace 算在赢面大的。设 re(a+1),re(

    29、a+11)中的 较大者为 re(b) 。 w(a|x)=4*rw(a+10|x)+rw(a+9|x)+rw(a+8|x)+rw(a+7|x)+rw(a+6|x)+rw(a+5|x) +rw(a+4|x)+rw(a+3|x)+rw(a+2|x)+rw(b|x)/13 d(a|x)=4*rd(a+10|x)+rd(a+9|x)+rd(a+8|x)+rd(a+7|x)+rd(a+6|x)+rd(a+5|x) +rd(a+4|x)+rd(a+3|x)+rd(a+2|x)+rd(b|x)/13 其实在 a 10 时,玩家必定会拿牌,所以上面把 Ace 看作软牌还是硬牌,对 决策来说是没有任何的影响的。

    30、2. 闲家已经 拿到 Ace 1) 计算前的 准备 然而,以上的算法有个致命的缺陷,在拿到 Ace 的时候 ,把 Ace 以 1 计算,7 无法体现 Ace 在 21 点游戏中的妙用。 此外还需要考虑 a 为 blackjack 的情形, 此 时庄家拿 5 张不爆,则闲家负,否则庄家拿到 blackjack 是平局,其他的情形均 为闲家赢。 因此我们来对拿到 Ace 情况下闲家的决策进行改良。 对于拿到了 Ace 且总点数在 12 点或者以上的,决策同没有拿到 Ace 的情况,因为此时闲家不能 把牌算作软牌,否则就超过 21 点 爆掉了。对于在 11 或者以下的,我们来考虑 Ace 的软硬牌情

    31、况。而对应的决策为 r(a)和 r(a+10) 。 为了方便下文的叙述,我们还是引进一些变量。 hw(a|x) 庄家明牌 x 的情形下,Ace 算作硬牌时,闲家获胜的概率 hd(a|x) 庄家明牌 x 的情形下,Ace 算作硬牌时,闲家平局的概率 he(a|x) 庄家明牌 x 的情形下,Ace 算作硬牌时,闲家赢钱的期望值 he(a|x)=hw(a|x)-(1-hw(a|x)-hd(a|x)=2*hw(a|x)+hd(a|x)-1 sw(a|x) 庄家明牌 x 的情形下,Ace 算作软牌时,闲家获胜的概率 sd(a|x) 庄家明牌 x 的情形下,Ace 算作软牌时,闲家平局的概率 se(a|x

    32、) 庄家明牌 x 的情形下,Ace 算作软牌时,闲家赢钱的期望值 se(a|x)=sw(a|x)-(1-sw(a|x)-sd(a|x)=2*sw(a|x)+sd(a|x)-1 这里依然采用倒叙递推的方法来计算, 当 Ace 算作硬牌的时候在下一回合一 定拿牌。 而算作软牌的时候, 要看该点数的决策来决定是否拿牌。 下面给出计算 公式。 当 a 10 时, sw(a|x)=rw(a|x) sd(a|x)=sd(a|x) 这里因含有假设,Ace 算作软牌之后不再改变。我们可以把这过程看成是单 步决策的情形,就是在拿到了牌之后,再重新决定 Ace 的属性。 此外还需要考虑这样的问题, 点数为 a 且

    33、其中一张是 Ace 的情况有多少种 (考 虑的是 5 维数组的种数) 。运用非负整数方程解的计算公式可以方便求解。 X1+X2+Xn=m 的非负整数解有C m+n 1 n 1 个。 那么点数为 a 的解且含有 Ace 在牌张数不同的时候可以分别得到公式 2 张牌:C a 2+2 1 2 1 C a 4+2 1 2 1 =C a 1 1 C a 3 13 张牌:C a 3+3 1 3 1 C a 6+3 1 3 1 =C a 1 2 C a 4 24 张牌:C a 4+4 1 4 1 C a 8+4 1 4 1 =C a 1 3 C a 5 35 张牌:C a 5+5 1 5 1 C a 10+

    34、5 1 5 1 =C a 1 4 C a 6 42) 具体的计 算公式 (1) 当 a=11 时,闲家有很大概率是 blackjack ,如果庄家也拿到了 blackjack 的话, 双方将会是平局。由于除去了 Ace 之外的牌 的点数是 10,把这样的情况分为两 种,一张牌和多张牌。 考虑闲家拿到的 5 维数组, 8 2 张牌的情况为 10、J 、Q 、K , 共有 2*4*133=17576 种 3 张牌的情况共有 24*132 种 4 张牌的情况共有 100*13 种 5 张牌的情况共有 105 种 闲家拿到 blackjack 的 概率为 17576/(17576+5461)=0.76

    35、3。所以有 hw(11|x)=w(11|x) hd(11|x)=d(11|x) sw(11|x)=rw(21|x) sd(11|x)=rd(21|x)+0.763*P(6|x) 之后比较 he(11|x) 与 se(11|x) 的大 小来决定 Ace 是作为软牌还是硬牌。 每次的 结束都比较一次,下面不再重复叙述。 因为在拿到 Ace 的时候要把 Ace 算在赢面大的。 设 re(a+1),re(a+11) 中的较大 者为 re(b) 。 当 a=10 时, hw(10|x)=4*rw(20|x)+rw(19|x)+rw(18|x)+rw(17|x)+rw(16|x)+rw(15|x)+rw(

    36、14|x) +rw(13|x)+rw(21|x)+rw(b|x)/13 hd(10|x)=4*rd(20|x)+rd(19|x)+rd(18|x)+rd(17|x)+rd(16|x)+rd(15|x)+rd(14|x) +rd(13|x)+rd(21|x)+rd(b|x) /13 (2) 当 a=9 时, hw(9|x)=4*rw(19|x)+rw(18|x)+rw(17|x)+rw(16|x)+rw(15|x)+rw(14|x)+rw(13|x) +rw(21|x)+rw(20|x)+rw(b|x)/13 hd(9|x)=4*rd(19|x)+rd(18|x)+rd(17|x)+rd(16|

    37、x)+rd(15|x)+rd(14|x)+rd(13|x)+rd(21|x) +rd(20|x)+rd(b|x)/13 (3) 当 a=8 时, hw(8|x)=4*rw(18|x)+rw(17|x)+rw(16|x)+rw(15|x)+rw(14|x)+rw(13|x)+rw(21|x) +rw(20|x)+rw(19|x)+rw(b|x)/13 hd(8|x)=4*rd(18|x)+rd(17|x)+rd(16|x)+rd(15|x)+rd(14|x)+rd(13|x)+rd(21|x)+rd(20|x) +rd(19|x)+rd(b|x)/13 (4) 当 a=7 时, hw(7|x)=

    38、4*rw(17|x)+rw(16|x)+rw(15|x)+rw(14|x)+rw(13|x)+rw(21|x)+rw(20|x) +rw(19|x)+rw(18|x)+rw(b|x)/13 hd(7|x)=4*rd(17|x)+rd(16|x)+rd(15|x)+rd(14|x)+rd(13|x)+rd(21|x)+rd(20|x)+rd(19|x) +rd(18|x)+rd(b|x)/13 (5) 当 a=6 时, hw(6|x)=4*rw(16|x)+rw(15|x)+rw(14|x)+rw(13|x)+rw(21|x)+rw(20|x)+rw(19|x) +rw(18|x)+rw(17|

    39、x)+rw(b|x)/13 hd(6|x)=4*rd(16|x)+rd(15|x)+rd(14|x)+rd(13|x)+rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x) +rd(17|x)+rd(b|x)/13 (6) 当 a=5 时, hw(5|x)=4*rw(15|x)+rw(14|x)+rw(13|x)+rw(21|x)+rw(20|x)+rw(19|x)+rw(18|x) +rw(17|x)+rw(16|x)+rw(b|x)/13 hd(5|x)=4*rd(15|x)+rd(14|x)+rd(13|x)+rd(21|x)+rd(20|x)+rd(19|x)+rd(

    40、18|x)+rd(17|x) +rd(16|x)+rd(b|x)/13 (7) 当 a=4 时, 9 hw(4|x)=4*rw(14|x)+rw(13|x)+rw(21|x)+rw(20|x)+rw(19|x)+rw(18|x)+rw(17|x) +rw(16|x)+rw(15|x)+rw(b|x)/13 hd(4|x)=4*rd(14|x)+rd(13|x)+rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x)+rd(17|x)+rd(16|x) +rd(15|x)+rd(b|x)/13 (8) 当 a=3 时, hw(3|x)=4*rw(13|x)+rw(21|x)+rw

    41、(20|x)+rw(19|x)+rw(18|x)+rw(17|x)+rw(16|x) +rw(15|x)+ rw(14|x)+rw(b|x)/13 hd(3|x)=4*rd(13|x)+rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x)+rd(17|x)+rd(16|x)+rd(15|x) + rd(14|x)+rd(b|x)/13 (9) 当 a=2 时, hw(2|x)=4*rw(12|x)+rw(21|x)+rw(20|x)+rw(19|x)+rw(18|x)+rw(17|x)+rw(16|x) +rw(15|x)+ rw(14|x)+rw(13|x)+rw(b|x)

    42、/13 hd(2|x)=4*rd(12|x)+rd(21|x)+rd(20|x)+rd(19|x)+rd(18|x)+rd(17|x)+rd(16|x)+rd(15|x) + rd(14|x)+ rd(13|x)+rd(b|x)/13 比较两个期望的大小, 之后决定选择 Ace 作为软牌还是硬牌。 而对应的软硬 牌点数 a (如果是算作软牌,则已经加上 10)对应的决策 acer(a) 。 3) 计算公式 的改进 做到这步, 显然是不足够的。 因为当 a 越小时, 就越有可能拿到 5 张牌不爆。 由此可知, 应该引入牌数的问题。 对于牌数的处理, 首先做出假设, 在拿到小 于 等于 3 张的时

    43、候, 闲家都不会考虑能否拿到 5 张不爆。 但是在 4 张的时候必须考 虑。 以下为拿到 Ace 的情况下, 总点数为 a , 牌数分别为 2、3、4、5 的情况数。 又因为再拿一张也不会爆掉,之后闲家胜。并设 ap(a) 为 下表中拿到 a 点下 4 张 的概率。由 1)中的计算公式,可以得到各点数下得到不同牌数的概率。 这里开始对 hw 和 hd 做出改造。 hw(a|x)=hw(a|x)*(1-ap(a)+ap(a) hd(a|x)=hd(a|x)*(1-ap(a) 又由于此时可能已经拿到 5 张牌了, 即立刻获胜。 sw 有以 下的改进。 设 bp(a) 为下表中拿到 a 点下 5 张

    44、牌的概率。 sw(a|x)=sw(a|x) +bp(a) 2 3 4 5 11 17576 75.96% 4056 17.53% 1300 5.62% 205 0.89% 10 4394 48.66% 3549 39.30% 962 10.65% 125 1.38% 9 4394 53.70% 3042 37.18% 676 8.26% 70 0.86% 8 4394 59.33% 2535 34.23% 442 5.97% 35 0.47% 7 4394 65.61% 2028 30.28% 260 3.88% 15 0.22% 6 4394 72.63% 1521 25.14% 130 2

    45、.15% 5 0.08% 5 4394 80.46% 1014 18.57% 52 0.95% 1 0.02% 4 4394 89.42% 507 10.32% 13 0.26% 0 0.00% 3 4394 96.30% 169 3.70% 0 0.00% 0 0.00% 2 2197 100.00% 0 0.00% 0 0.00% 0 0.00% 10 关于闲家没有拿到 Ace 且点数 a 小于等于 11 的时候,也可以用类似的算法 来计算 re(a|x) ,但是由于下文没有用到,所以不对 re(a|x)(a=11) 做 改进。 至此,闲家决策问题解决。 ( 三) 实际牌局 模拟过 程设计

    46、 考虑闲家与庄家都已经各拿到了 5 张牌, 但是这些牌并没有决定是要还是不 要。 当牌局开始的时候, 闲家先拿两张, 庄家拿两张。 把第一张拿到的牌翻开 来 作为明牌。闲家根据庄家的明牌来决定闲家的决策。 把闲家与庄家各拿到的 5 张牌用随机数来生成。 这里其实可以跑遍所有的 10 维数组来求出具体的概率, 但是数据规模有点大, 在一定的时间内计算机不能求 解,可能需要对算法进行优化。 我们对此生成随机数数组来进行多次的牌局模拟。 这样在牌局数比较大的时 候, 计 算出来的概率就会与实际的闲家获胜概率、 平局概率与庄家获胜的概率相 差不少。 四、 模型求解 采用之前的模型建立的部分算法编程求解

    47、。 下面给出伪码, 具体程序代码见 附录。 ( 一) 求解 a(x,y) zhj138 该数组的第一个下标表示的是庄家的明牌, 第二个下标表示的是 0,五张一样;1,17 点;2,18 点;3,19 点;4,20 点;5,21 点;6, 黑杰克 blackjack;7,爆掉 burst 。 并且把所有的 值初始化为 0。 int zhuangjiajuece(int i1,int i2, int i3,int i4,int i5) 计算出庄家的决策, 并把对应的结果 i(就是 zhj 数组的第二个下标的结果) 记 录在 zhji1i中,就是 让 zhji1i 的值加 1。这样就能统计出来 a(

    48、x,y) 。 a(x,y)=zhjxy ,如下 表所示 a(x,y) 0 1 2 3 4 5 6 7 1 1000 3432 3432 3432 3432 1915 8788 3130 2 1700 3601 3445 3276 3094 3641 0 9804 3 1225 3588 3445 3289 3120 3410 0 10484 4 825 3549 3419 3276 3120 3226 0 11146 5 531 3380 3380 3250 3107 3097 0 11816 6 333 4654 2964 2964 2834 2771 0 12041 7 225 10478

    49、 3887 2197 2197 2112 0 7465 11 8 150 3640 10231 3640 1950 1975 0 6975 9 100 3406 3406 9997 3406 1731 0 6515 10 50 3172 3172 3172 9763 980 2197 6055 11 50 3172 3172 3172 9763 980 2197 6055 12 50 3172 3172 3172 9763 980 2197 6055 13 50 3172 3172 3172 9763 980 2197 6055 之后用古典概型的公式 P(y|x)= P(x,y) p(x) = a(x,y) a(x,y) y 。我们就能计算出来相应的 庄家概率。如下表所示 P(y|x) 0 1 2 3 4 5 6 7 1 3.50% 12.02% 12.02% 12.02% 12.02% 6.70%

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:揭秘21点——BLACKJACK.pdf
    链接地址:https://www.docduoduo.com/p-5958787.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开