有趣的統計學(2)

從流程我們可以很明顯地看出來,玩家在叫牌的時候,有一定的可能會「爆」,爆了就輸牌輸錢。即使後手的莊家也爆牌,這一局兩人的對決還是莊家勝。這是典型的「先手劣勢」

擊敗莊家?

上一回用了些章節,說明這個 python 程式的大致狀況,接下來我們可以利用這個模型,看看統計和模擬可以教我們什麼。

首先,我們安排四位玩家和一位莊家,使用三副 156 張牌,用到剩下 40 張牌的時候,洗牌再玩。莊家的策略很清楚,依據二十一點的規則,莊家牌點小於十七的時候,必須叫牌。如果我們讓玩家的策略跟莊家一模一樣,低於十七點叫牌。下注都用最低標準的金額…假設為一塊錢(美金??)好了,我們看看結果如何? 對了,平手的局我們不算勝負,這樣子數據比較容易理解。

三十次的結果

玩家:1號, wins:14, loses=13, win%=0.519, money=10001

玩家:2號, wins:15, loses=12, win%=0.556, money=10003

玩家:3號, wins:14, loses=16, win%=0.467, money=9999

玩家:4號, wins:11, loses=16, win%=0.407, money=9996

莊家, wins:57, loses=54, win%=0.514, money=50001

在四位玩家使用同樣的策略下注叫牌、沒耍任何花招的狀況下,二號玩家勝率高達 55.6%,四號玩家只有 40.7%,這說明小數量的玩牌,的確有相當大的運氣關係。好消息是,玩了三十局,輸贏其實不大。小賭怡情,還行。

再一個三十次呢,玩家勝率的變化很大,限於篇幅,有興趣可以自行測試一番。

三千次的結果

玩家:1號, wins:1265, loses=1446, win%=0.467, money=9848

玩家:2號, wins:1235, loses=1469, win%=0.457, money=9792

玩家:3號, wins:1272, loses=1430, win%=0.471, money=9872

玩家:4號, wins:1290, loses=1439, win%=0.473, money=9883

莊家, wins:5784, loses=5062, win%=0.533, money=50605

在四位玩家使用同樣的策略下注叫牌、沒耍任何花招的狀況下,四位玩家的勝率開始接近,輸的金額也慢慢浮現,這說明較大數量的玩牌,輸贏跟運氣的關係就降低了,莊家的優勢出現。

五萬次的結果

玩家:1號, wins:20939, loses=24369, win%=0.462, money=7036

玩家:2號, wins:20934, loses=24263, win%=0.463, money=7199

玩家:3號, wins:20910, loses=24324, win%=0.462, money=7092

玩家:4號, wins:20904, loses=24452, win%=0.461, money=6915

莊家, wins:97408, loses=83687, win%=0.538, money=61758

在四位玩家使用同樣的策略下注叫牌、沒耍任何花招的狀況下,四位玩家的勝率基本上是相同的,平均 46.2%,輸的金額的差異也不很大。這說明更大數量的玩牌,勝負機率回歸本質,玩家輸牌是「天注定」的…莊家則是擁有53.8%勝率,雙方勝率的差異達到 7.6%。

超過五萬次的結果,跟重覆跑五萬次的差異不很大。我們暫時用這個次數,做為分析的基準。

同樣的策略,玩家為什麼輸?

從流程我們可以很明顯地看出來,玩家在叫牌的時候,有一定的可能會「爆」,爆了就輸牌輸錢。即使後手的莊家也爆牌,這一局兩人的對決還是莊家勝。這是典型的「先手劣勢」,玩家不可不查也。

玩家的數量多寡是否對勝率造成差異?

我們把玩家的數目 num_players 調整成三和五,經過五萬次牌局的模擬,其結果和四位玩家的勝率狀況一樣。如果玩牌的局數不多,本身就有很強的運氣因素存在,那個不可控,我們先放一邊。

三玩家

玩家:1號, wins:20833, loses=24498, win%=0.460, money=6841

玩家:2號, wins:21008, loses=24401, win%=0.463, money=7075

玩家:3號, wins:20917, loses=24451, win%=0.461, money=6945

莊家, wins:73350, loses=62758, win%=0.539, money=59139

五玩家

玩家:1號, wins:20829, loses=24532, win%=0.459, money=6778

玩家:2號, wins:20853, loses=24299, win%=0.462, money=7009

玩家:3號, wins:21053, loses=24380, win%=0.463, money=7193

玩家:4號, wins:21098, loses=24152, win%=0.466, money=7400

玩家:5號, wins:20801, loses=24557, win%=0.459, money=6708

莊家, wins:121920, loses=104634, win%=0.538, money=64912

「先手劣勢」解法

既然玩家因為先手,有「爆」的機率導致劣勢,那我們叫牌策略就不應該跟莊家一樣。降低叫牌的門檻是否可以完全克服這個劣勢? 是的,驢子也是這樣想…我們來實際模擬:

我們讓四位玩家不約而同,把低於十七-相同於莊家的叫牌邏輯,改到十六點以下(不含十六)才叫牌,同樣下一美元一注,五萬次牌局:

玩家:1號, wins:21147, loses=24531, win%=0.463, money=6941

玩家:2號, wins:20774, loses=24827, win%=0.456, money=6307

玩家:3號, wins:20997, loses=24626, win%=0.460, money=6733

玩家:4號, wins:20907, loses=24626, win%=0.459, money=6603

莊家, wins:98610, loses=83825, win%=0.541, money=63416

低於十六叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 45.9%,莊家是 54.1%

低於十五叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 46.5%,莊家是 53.5%

低於十四叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 46.0%,莊家是 54.0%

低於十三叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 45.5%,莊家是 54.5%

低於十二叫牌,模擬出來的結果跟低於十七叫牌的差別不大,玩家的勝率差不多在 44.4%,莊家是 55.6%

低於十一叫牌,哪怕是驢子都會笑出來,咱們就不丟這個臉了…看出來了嗎,在一切不變的狀況下,改變策略低於十五叫牌,玩家的勝率雖然較高,但也遠遜於莊家,雙方勝率還是有 7.0% 的差距。如果我們分析資料,會看出雖然我們「爆」的機率降低,但點數不夠被莊家吃掉的機率提高了。所以,僅只是改變叫牌點數,並不能克服這個「先手劣勢」。

別擔心,還是有新的策略可以研究,讓我們繼續看下去。

作者: George

林震 George 台灣大學機械系、機械研究所畢業 曾任:工廠廠長、技術開發主管、資材與供應鏈主管,現任上市公司資深協理、總管理處 6 Sigma MBB,台虹綠電總經理 著作:企業財務策略(華泰文化) email: clin8870@yahoo.com.tw