老虎機

老虎機資金計算器:用 2 萬次模擬算出單注該是本金的幾 %

這篇的前身是一個標題叫「資金計算器」、內容卻只有「建議單注不超過本金 2%」的填充文。2% 從哪來?沒人知道。這次我決定真的算一次:寫一支 node 程式,造三種波動率的賠付表,全部鎖在 RTP 96%,然後讓 20,000 個虛擬玩家各帶 100 單位本金進去,看他們活多久。

結果比我想的殘酷:大家習慣的「本金 ÷ 每轉理論損失」算法,會把你的遊戲時間高估十倍。

TL;DR

  • 本金 100、RTP 96%、中波動、單注 1:活過 500 轉的機率只有 36%,破產者的中位轉數是 256 轉——不是「期望值算法」給的 2,500 轉。
  • 單注從本金 1% 加到 5%,活過 500 轉的機率從 36% 掉到 6%;加到 10% 剩 3%。單注比例是你唯一能完全控制的變數。
  • 波動率的影響比 RTP 大:同樣 96%、單注 1%,低波動活過 1,000 轉 53%,高波動只有 10%。

先講最常見的錯誤算法

幾乎每篇資金管理文都教這個:

可玩轉數 ≈ 本金 ÷ (單注 × (1 − RTP))
         = 100 ÷ (1 × 0.04) = 2,500 轉

這條算式沒有錯,它算的是「平均每轉輸 0.04,所以平均 2,500 轉輸光」。問題是它假設你每轉都剛好輸 0.04——而真實的老虎機是 75% 的轉數輸掉整注、偶爾回一大筆。平均值一樣,路徑完全不同。而且你一旦歸零,遊戲就結束了,後面本來會贏回來的那些轉數不會發生。這叫「吸收壁」,是賭徒破產問題的核心。

所以我不算期望值,我直接模擬路徑。

模擬假設(全部寫清楚)

我造了三張賠付表,每張都把賠付縮放到 RTP 剛好 96%,差別只在波動率:

賠付表 命中率 單轉標準差(倍) 最大倍數 像哪種機台
低波動 39.7% 3.3 61x 復古水果機、高命中率經典機
中波動 24.9% 9.1 345x 一般 5×3 影片機
高波動 20.0% 24.4 2,264x 消除+倍率的新式機

其他條件:本金 100 單位、單注 1/2/5/10 單位(=本金的 1%/2%/5%/10%)、最多轉 1,000 轉或本金不足一注時停、每組跑 20,000 次。隨機數用固定種子,結果可重現。程式核心就這幾行:

function spin(table){ const u=rnd(); for(const [pay,cum] of table) if(u<cum) return pay; return 0; }
let b=100, n=0;
while(n<1000 && b>=bet){ b -= bet; b += bet*spin(T.mid); n++; }

這是玩具模型,不是任何一款真實遊戲。真實遊戲的賠付表更複雜(免費遊戲、倍率累積),但波動率對存活的影響方向是一樣的。

結果一:單注比例 vs 存活率

波動 單注(佔本金) 活過 200 轉 活過 500 轉 活過 1,000 轉 破產者中位轉數
低 1% 99.8% 79.6% 53.1% 542
低 2% 73.0% 41.3% 25.0% 259
低 5% 27.7% 15.0% 8.9% 77
低 10% 12.3% 7.0% 4.0% 27
中 1% 73.3% 36.2% 22.8% 256
中 2% 32.9% 16.5% 11.1% 102
中 5% 11.3% 6.3% 4.3% 29
中 10% 5.3% 3.0% 2.1% 13
高 1% 35.6% 19.8% 9.8% 160
高 2% 13.2% 7.9% 4.6% 71
高 5% 4.8% 2.5% 1.5% 25
高 10% 2.4% 1.2% 0.8% 11

看中波動那組:單注 1%,期望值算法說你能玩 2,500 轉,模擬說活過 500 轉的只有 36%,破產的人中位數在第 256 轉就出局。差了十倍。 單注加到 5%(很多人覺得「本金 2,000 下 100 很正常」),活過 500 轉只剩 6%,破產中位轉數 29——大概三分鐘。

我跑完第一版把輸出貼給自己看,第一反應是程式寫錯了,怎麼可能 1% 單注也有六成的人活不過 500 轉。檢查了半小時,沒錯。錯的是我的直覺:我一直把「RTP 96%」腦補成「每轉穩穩拿回 0.96」,但中波動表裡四分之三的轉數是直接歸零,剩下四分之一要扛起全部的 96%。本金 100 在這種分布底下,就是一條很容易掉進洞裡的細線。

結果二:1,000 轉後你的本金長什麼樣

同樣本金 100、單注 1,撐滿 1,000 轉(或中途破產)之後的本金分布:

波動 第 10 百分位 第 25 百分位 中位數 第 75 百分位 第 90 百分位 第 99 百分位 結束時贏錢比例 平均
低 0 1 24 121 199 333 30.7% 68.7
中 0 0 1 1 349 878 19.8% 82.5
高 0 0 1 1 1 2,299 8.3% 80.8

三組的平均都在 70~80 左右——跟期望值一致(1,000 轉 × 4% ≈ 損失 40,加上破產者提早停損的效應)。但中位數天差地遠:低波動中位 24,中、高波動中位數都是 1,意思是一半以上的人在 1,000 轉之前就歸零了。高波動的第 90 百分位還是 1,只有最後 1% 的人拿到 2,299。這就是「平均值相同、體驗完全不同」最直白的例子,背後的數學在方差與標準差那篇。

對照組:賭徒破產公式說什麼

模擬是玩具,我拿經典公式驗一下方向。賭徒破產問題(Gambler's ruin)給的是:每局贏 1 單位機率 p、輸 1 單位機率 q=1−p,本金 i,目標翻倍到 2i,破產機率為 ((q/p)^i − (q/p)^{2i}) / (1 − (q/p)^{2i})。代入:

每局莊家優勢 本金 5 本金 10 本金 20 本金 50 本金 100
0%(公平) 50% 50% 50% 50% 50%
2%(p=0.49) 55.0% 59.9% 69.0% 88.1% 98.2%
4%(p=0.48) 59.9% 69.0% 83.2% 98.2% ≈100%

這張表講的是一個反直覺的事:在負期望值遊戲裡,本金越多(相對單注),翻倍前破產的機率越高。因為你玩的局數越多,莊家優勢就累積得越多。本金 100 單位、每局優勢 4%,要翻倍到 200 幾乎不可能(≈100% 破產);反而本金 5 單位用五局決勝負,還有四成機會翻倍。

這跟上一節「單注比例小才活得久」沒有矛盾——那是「活多久」,這是「能不能翻倍」。兩個目標要的策略剛好相反:要玩久就下小注,要賭翻倍就下大注然後走人。不可能兩個都要。

至於凱利公式(Kelly criterion)——很多人問它能不能算老虎機的最佳下注比例。能算,f* = p − q/b,但在期望值為負時 f* ≤ 0,答案是「不下」。它對老虎機唯一的用處是誠實:你下的每一個比例都不是在最佳化報酬,是在用錢買時間。

我的資金計算器(三步)

把上面整理成你真的能用的流程:

  1. 決定你要的是什麼:玩一個晚上(存活)還是賭一把翻倍(衝刺)。兩者策略相反,先選。
  2. 存活派:查機台 RTP 與波動率(看怎麼判斷波動率),對照結果一的表。想有七成以上機率活過 500 轉,低波動單注 ≤ 1%,中波動要再降到 0.5% 以下,高波動建議 0.25%——也就是本金至少是單注的 400 倍。
  3. 衝刺派:設一個目標(例如 +50%)跟一個停損(例如 −50%),下大注、達標或觸底就走。模擬裡中波動單注 1% 的玩家有 27% 曾經翻倍——重點是「曾經」,繼續玩就會還回去。

兩派共通的一條:本金是你願意全部輸掉的錢。 計算器算的是機率,不是保證,而且每一格都是機率,沒有一格是「不會輸」。更完整的資金管理原則在資金管理完全指南。

最後說一下 2% 這個數字。我的舊文寫「單注不超過 2%」,模擬之後我發現它對低波動機台還算合理(活過 500 轉 41%),對高波動機台是災難(7.9%)。一個數字套所有機台,本來就是偷懶。這篇給的不是一個數字,是一張表——請對照你的機台跟你的目標自己挑。

常見問題

老虎機單注應該是本金的幾 %? 我的模擬(RTP 96%、中波動):單注 1% 時活過 500 轉的機率 36%,2% 時 17%,5% 時 6%,10% 時 3%。想玩滿一個晚上,1% 是起點;高波動機台還要再砍半。

本金 1 萬、每轉 100 元,可以玩多久? 不是「1 萬 ÷ (100×4%) = 2,500 轉」。這個算法只看期望值,忽略波動。我的模擬裡,同樣條件(本金是單注 100 倍)在中波動機台的破產者中位轉數只有 256 轉,比算式少十倍。

凱利公式能用在老虎機嗎? 能算但答案是零。凱利公式 f* = p − q/b 在期望值為負時給出 f* ≤ 0,意思是「最佳下注比例是不下」。它對老虎機的用處是提醒你:任何比例都是在用錢買時間。

波動率對破產機率影響多大? 很大,比 RTP 大。同樣 RTP 96%、單注 1%,低波動表活過 1,000 轉 53%,中波動 23%,高波動 10%。選錯波動率比選錯 RTP 貴得多。

延伸閱讀