上一回用了些章節,說明這個 python 模擬程式的大致狀況。實際做了模擬,發現玩家僅僅改變叫牌策略並不能克服「先手劣勢」。在單一的叫牌策略中,低於(不含) 15 點叫牌的話,莊家的勝率是比較低的,約為 53.7%。這一節,我們來認識一下,莊家在平均53.7% 的勝率下,有沒有我們可乘之機?
二十一點的通用規則中,莊家會顯示一張「明牌」(下表欄位為Bank_Card)。我們試著從明牌的角度來分析莊家的勝率是否跟明牌顯示的結果相關。程式並不困難,利用前節所提的 python 物件組合成一位莊家四位玩家五萬次牌局的模擬程式。結果是這樣:
這張表告訴我們很重要的資訊,在平均53.7%的勝率下,莊家的明牌如果是 2~7,其勝率低於50%,而明牌如果是 8, 9 勝率在 50-60%,10 和 A 的勝率,都高於 60%。
修改玩家的叫牌策略,看來沒有很好的變化:低於(不含) 13 叫牌的結果如下表。我們發現一個規律,莊家明牌如果是 5,6, 降低叫牌可以增加1-2% 勝率。背後的邏輯很簡單,明牌如果 5 或 6,另一張不論是什麼牌,莊家都得再叫牌。只要叫牌,10點 (包括 10, J, Q, K)的機率約有 30%,很容易爆牌。另一個發現,莊家的明牌如果是 7,8,9,那麼莊家贏牌的機率變高約 2%。
所以,我們可以調整叫牌策略,當莊家的明牌為 5,6 時,我們要確保自己不爆牌。其他的時候,採用玩家勝率較高的叫牌策略 – 低於 15 叫牌。不過,我們知道,雖然提昇了些許勝率,但莊家的明牌如果是 10,J,Q,K,A 玩家勝率輸莊家太多,這樣的改變對輸贏的結果並沒有太大的幫助。
改變莊家的勝率不容易,但其實改變輸贏的結果不難。如果莊家的明牌對我們有利的時候,我們增加籌碼,例如,十倍的賭注,我們來看看結果:
哈,雖然平均來看,莊家的優勢勝率沒有改變,但由於莊家明牌是可視的,明牌不同時,莊家與玩家的勝率不同,這給了我們可乘之機。這同時也是 Bayes 所教導我們的原理:看統計數字不能只看平均值和標準差。往下鑽研看到「條件機率」的話,也許可以改變局勢。
改變二十一點的下注方式,將改變每次輸贏的期望值。如果每位玩家,在高優勢的牌局時提高下注的倍數,可以扭轉「輸牌等於輸錢」的情勢,變成「雖然輸牌的次數一樣,但能夠贏錢」…至於二十一點的規則,每一家賭場都有些許不同。一些書裏有說,某些賭場在發完牌,賭客還沒碰牌前,是可以調整賭注的。看來我們得去找到這些賭場,然後做做實驗了…