1. 程式人生 > >21點:賭場裡最可能贏錢的遊戲

21點:賭場裡最可能贏錢的遊戲

高階賭徒如何要牌

可以看到 21 點並不複雜,數學家們很容易找出最佳要牌策略。計算表明,最佳玩法使得玩家勝率達到 49% 左右。對職業賭徒來說,做到這點沒有什麼困難,所謂最佳玩法不過是 3 個矩陣,記下來就可以了。

/gkimage/ph/8k/qd/ph8kqd.png

上面 3個矩陣幾乎涵蓋了賭局上可能出現的所有情況。頂部橫排座標表示莊家首回合翻開牌的點數(T為10點)。第一個矩陣豎排最左列表示玩家當前手牌點數和, H 即 Hard,就是說要把手牌中的 A 當成 1 點來算(如果有的話),另外兩個矩陣豎排最左列表示的玩家手上的兩張牌是什麼。

剩下的矩陣元素就是玩家對應的最佳操作。其中 H 表示 Hit, S 表示 Stand, P 表示Split, D 表示 Double(如果規則不允許就Hit), Ds 表示 Double(如果規則不允許就Stand)。

仔細觀察上面 3 個矩陣,許多要牌策略稍加思考就可明白。但也有一些很有意思的地方,比如說當手牌和為 12 時,莊家牌面為 2 或 3 要 Hit, 4 到 6 要Stand,當莊家牌面更大時則應堅決要牌。

為什麼會這樣?什麼時候要牌什麼時候不要,概率說了算。不妨讓我們先來看看玩家 12 點時 Stand 的勝率。莊家開始抽牌後,點數和大於等於 17 才會停止。這時玩家要獲勝只能寄希望於莊家爆牌。

如果莊家起始點數大於等於 17,根本不用抽牌。點數和為 H16 時,抽到 6~T 會爆掉。我們知道,抽到不同大小的牌的概率是相等的(1/13),設 F(x) 是當前點數和為 x 時繼續抽牌爆掉的概率,那麼:

F(H16) = 8/13 = 0.61538

當莊家手牌點數和為 H15 時,抽到 7~T 爆掉;抽到 A 就化歸成了 H16 的情況:

F(H15) = 7/13 + 1/13×F(H16) = 0.58580

同理可算出 H14 到 H6 的爆牌概率。當莊家手牌和為 H5 時,情況又有所不同,這時 A 可以被算作11點,把這個變化考慮進來後,也不難算出 H2—H5 的情況。

那如果是玩家選擇 Hit 呢?這時有兩種獲勝情況:

玩家沒爆但是莊家爆牌

玩家和莊家都沒爆但莊家點數小

爆牌的概率已經算過,現在來考慮比大小這種情況。如果莊家第一張牌為 2,令 G(x) 為莊家得到點數和為 x 的手牌的概率,則 G(H2) = 1。

如果莊家手牌和變為 H3,只能是在 H2 的情況下抽到一張 A,即:

G(H3) = 1/13×G(H2) = 0.07692

類似地可算出 H4 到 H 21 的概率,依然要注意 A 算成 11 點的情況。在雙方都沒爆牌的情況下,玩家通過比大小獲勝只有以下幾種可能:

玩家拿到21點,莊家拿到20~17點

玩家拿到20點,莊家拿到19~17點

玩家拿到19點,莊家拿到18和17點

玩家拿到18點,莊家拿到17點

玩家從 12 點開始抽牌,拿到 18 點,相當於從 H2 開始抽,拿到 H8,因此概率為G(H8),而莊家拿到 17 點的概率 G(17)。據此情況4的概率為:

P4 = G(H8)×G(17)

同理可以算出P3,P2,P1。因此在玩家手牌和為 H12,莊家第一張牌為 2 的情況下玩家選擇 Hit 的獲勝概率為:

P(H) = P1 + P21 + P22 + P23 + P24 = 0.36958

前面算過,此情況下選擇 Stand 獲勝的概率 P(S) = F(H2) = 0.35831

P(H) > P(S),所以 Hit 為最優策略。

用同樣的方法我們可以算出玩家手牌和為 H12 時莊家第一張牌為 H3~H11 時玩家選擇 Hit 獲勝的概率。把所有情況都算出來,就得到如下的表格:

/gkimage/ez/m3/dw/ezm3dw.png

相關推薦

21賭場可能遊戲

高階賭徒如何要牌 可以看到 21 點並不複雜,數學家們很容易找出最佳要牌策略。計算表明,最佳玩法使得玩家勝率達到 49% 左右。對職業賭徒來說,做到這點沒有什麼困難,所謂最佳玩法不過是 3 個矩陣,記下來就可以了。 上面 3個矩陣幾乎涵蓋了賭局上可能出現的所有情況。頂部橫排座標表示莊家首回合翻開牌的點數(

【原創】新韭菜日記4---股市賭徒的宿命起?

股市裡賭徒的宿命:輸錢從贏錢起? -----為什麼我也遇到了這個怪圈   前提情景:第1次確實小賺了點,但是接著投入後就虧了一筆 行為模式:是因為盈利會被自己選擇性的記憶為起點?             &nb

21)進階JS 的資料

js的歷史 資料型別        谷歌搜尋   方應杭 es5 特性   進階:JS 裡的資料 optional chain 的用法 console.log(obj?.a?.b?.c?.name) JS的資料型別

牛客網線上程式設計(21連續大和-python

序言 這是2017年滴滴的一道題目,但是2018年出現了它的變種題目,我會同時為大家提供出本題和變種後題目的程式碼 題目描述 一個數組有 N 個元素,求連續子陣列的最大和。 例如:[-1,2,1]

線段樹基礎更新,區間值(和)查詢

單點更新,區間查詢 線段樹可以解決一類區間問題,例如最基礎的單點更新,區間最值查詢。 程式碼如下: #include<bits/stdc++.h> using namespace std; const int maxn = 10000; //原

JS與線段的短距離,並返回該短距離線上段上的座標。

直接上程式碼: function PointToLineDistance (xx, yy, x1, y1, x2, y2) { let ang1, ang2, ang, m; let result = 0; // 分別計算三條邊的長度 const a = Mat

美團 CEO 王興從 0 到幹到 300 億美金,格局上輸了,再多努力都不可能

2017 年 10 月 19 日,美團點評完成新一輪 40 億美元融資,投後估值 300 億美元。 此次融資由騰訊領投,引入了新的戰略投資方 The Priceline Group,其他主要投資人包括:紅杉資本(Sequoia Capital)、新加坡政府

Python 小技巧Python3 表示大整數值和浮數值

一、引言 這是我在學習 《Python Algorithms 2nd》 一書中第 28 頁時候受到的啟發: For intergral weights, you could use sys.maxint , even though it’s not g

Android SeekBar 禁止拖動和選的實現(可能簡單完美的實現)

在播放線上音訊時,需求是不能拖動進度條,讓音訊自然播放。 實現就很簡單了,不要和網上的那樣重寫onTouchEvent,沒有必要的,所以一定要了解Android的觸控機制。 直接監聽SeekBar

展望未來今後十年可能誕生的21個新工作

幾千年來,工作對人類來說必不可少,以後也將始終如此。它不斷變化,以適應我們所處的時代。未來10年

C、C++資料型別(int, long, short, char, long long) 的取值範圍、小值climits 的一些巨集

#include <iostream> #include <climits> using namespace std; int main() { cout << "int is " <<sizeof

人生感悟影響人成功和幸福的21

1. 哈佛有一個著名的理論:人的差別在於業餘時間,而一個人的命運決定於晚上8點到10點之間。每晚抽出2個小時的時間用來閱讀、進修、思考或參加有意的演講、討論,你會發現,你的人生正在發生改變,堅持數年之後,成功會向你招手。不要每天抱著QQ/MSN/遊戲/電影/肥皂劇……奮鬥

痞子衡嵌入式IVT的不同entry設定可能會造成i.MXRT1xxx系列啟動App後發生異常跑飛

----   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是**IVT裡的不同entry設定可能會造成i.MXRT1xxx系列啟動App後發生異常跑飛問題的分析解決經驗**。   事情緣起恩智浦官方論壇上的一個疑問帖 [《RT1015 dev_cdc_vcom_freertos res

迅雷程浩痛點不痛,剛需不剛,是90%創業項目的通病(剛需就三要麽極大地提高效率,要麽極大地降低成本,要麽極大地提升體驗)

大公司 資源 https data 通信 免費 減肥 聊天 log   首發|黑馬學院 heima_ying;口述|程浩;整理|醬紫君   本文由創業家根據程浩在黑馬營的演講素材整理而成。轉載請聯系創業家獲得授權(微信 ID:chuangyejia)   前言   2

POJ 1861Network(小生成樹&amp;&amp;kruskal)

nis bool cmp edge his table int pst 應該 Network Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 13266 Accepted: 5

RabbitMQ系列教程之一我們從簡單的事情開始!Hello World

model 系列教程 退出 utf 忽略 是你 必須 using chan 一、簡介 RabbitMQ是一個消息的代理器,用於接收和發送消息,你可以這樣想,他就是一個郵局,當您把需要寄送的郵件投遞到郵筒之時,你可以確定的是郵遞員先生肯定會把郵件發送到需要接收郵件的

(hdu step 7.1.7)Wall(求凸包的周長——求將全部圍起來的小凸多邊形的周長)

esp minimal gree follow inpu clas foo sed sig 題目:WallTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot

hdu2795(線段樹單更新&區間值)

ref 當前 廣告 sed gif .cn lap ostream spa 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2795 題意:有一個 h * w 的板子,要在上面貼 n 條 1 * x 的廣告,在貼第 i 條廣

老男孩教育每日一題-第70天-shell腳本優化

判斷腳本 腳本優化 每日一題 題目參見以下腳本:#!/bin/bash grep oldboy /etc/passwd &>/dev/null REVAL=$? if [ $REVAL -eq 0 ] then echo "oldboy user already exist

​老男孩教育每日一題-第73天 -基礎命令可惡的^C

取消ctrl+c 每日一題 ^c 題目背景:很多運維的朋友都遇到過一個問題,輸入一串命令,每次按下ctrl+c都會出現一個比較麻煩的字符信息^C請問有什麽方法可以不讓^C字符信息出現呢?解決方法:利用stty命令即可解決:中斷不顯示^C: stty -echoctl終端顯示^C: stty