蒙地卡羅模擬在做什麼
算不出來的東西,就跑一萬次數數看。
一句話的原理
有些問題有公式,有些沒有。沒有公式的時候,就把整個過程實際跑一遍,跑很多次,然後數數看各種結果各佔多少比例。
這就是蒙地卡羅模擬。它不聰明,只是把「機率」換成「頻率」——跑一千二百次,其中八次撐不完,那麼撐不完的機率大約是 0.67%。
這個方法的強項是:只要你能描述規則,就能得到答案,不需要那個問題有漂亮的解析解。
什麼時候該用它
當分布不規則、或有路徑相依性的時候。
賭徒破產問題 有公式,因為它的結構很乾淨:每一步只有 +1 或 −1。老虎機沒有,因為它的單次結果可能是 0、3 倍、或 576 倍,而且「有沒有在中途破產」取決於整條路徑走過哪裡,不只取決於終點。
這種情況下用常態近似會出錯,而且錯得有方向性——本站的 停損停利設定器 就因為這個原因從常態近似改成模擬:常態近似把破產機率誇大了兩百倍。
為什麼常態近似會錯
因為老虎機的變異數幾乎全部來自右尾——那個極罕見的大獎。
常態分布是對稱的,所以你把總變異數丟給它,它會認為左邊也一樣散得那麼開。但實際上左邊是有界的:每一轉最多損失一注,不可能更多。
結果就是常態近似高估了「往下走」的可能性。要問「會不會輸光」這種左尾問題,只能老實跑模擬。
跑幾次才夠
看你要估的機率有多小,以及你能接受多大的誤差。
估一個 10% 左右的機率,跑一千次的標準誤大約是 0.95 個百分點;跑一萬次降到 0.3 個百分點。要估 0.1% 這種等級的機率,一千次可能一次都沒遇到,得跑十萬次以上才有意義。
本站的工具跑六百到一千二百次,因為它們要在你拖動滑桿時即時重算。這個次數對「兩成還是五成」這種量級的判斷足夠,對「0.1% 還是 0.3%」則不夠精確——所以那些數字只當量級參考。
為什麼用固定的亂數種子
因為每動一下滑桿就重跑一次亂數的話,圖會自己抖。
你把押注從 20 調到 21,結果變了——但你分不清那是押注造成的,還是這一批亂數剛好比較衰。那讓工具沒辦法用來比較。
固定種子讓同樣的輸入永遠得到同樣的結果,變化就一定來自你改的那個參數。代價是這批模擬固定了,但這對「看趨勢」的用途沒有影響。
這不表示結果是預先算好的。每次重算都是真的重跑,只是亂數序列每次從同一個起點開始。
常見問題
模擬結果算不算預測?
不算。它給的是分布:各種結果各佔多少比例。看的應該是「有多少比例的結果我可以接受」,不是「最好的那條線長什麼樣」。
為什麼不直接跑一百萬次?
因為要在瀏覽器裡即時算。一百萬次的模擬會讓拖動滑桿卡住好幾秒,那會讓工具變得沒法用。精度與即時性之間有取捨,本站選了後者,並在頁面上標明。
模擬用的模型準嗎?
本站用的是三段式簡化賠付(小獎、大獎、沒中),比真實機台簡單很多。它抓住的是決定「資金能撐多久」的兩個關鍵參數:中獎頻率與大獎佔比。當量級參考可以,當特定遊戲的預測不行。
名字為什麼叫蒙地卡羅?
因為方法在 1940 年代由曼哈頓計畫的研究者提出時,用摩納哥那個賭場城市當代號。這個方法本身跟賭博沒有必然關係,物理、金融、工程都在用。
資料來源
- Monte Carlo method
- Xorshift本站模擬使用的偽亂數產生器
用得到的計算機
- 老虎機破產機率模擬:這筆錢撐不撐得完預定轉數 跑一千二百次模擬,看這筆資金撐不撐得完,以及會怎麼撐。
- 賭資管理計算機:預算能撐多久、單注上限與停損線 給定預算與想玩的時間,反推單注上限與停損線。
- 波動度是什麼?老虎機高低波動差別與中位數低於平均 為什麼兩台期望值一樣的機器,玩起來完全不同。