Luke a Pro

Luke Sun

Developer & Marketer

🇺🇦
EN||

蒙地卡羅模擬 (Monte Carlo)

| , 2 minutes reading.

蒙地卡羅模擬 (Monte Carlo)

引言:用飛鏢計算 Pi (π\pi)

想像你在牆上畫了一個正方形,裡面有一個內切圓。你扔飛鏢的技術很爛,所以你是隨機亂扔的。 扔了 1,000 次後:

  • 總投擲數:1,000
  • 落在圓內:785
  • 比率:785/1000=0.785785 / 1000 = 0.785

因為 圓的面積 / 正方形面積 = π/4\pi / 4,我們可以得出 π4imes0.785=3.14\pi \approx 4 imes 0.785 = 3.14。 你剛剛用隨機運氣算出了圓周率。這就是 蒙地卡羅方法

演算法要解決什麼問題?

  • 輸入: 一個帶有不確定變數的系統,或者複雜到無法用解析法求解的方程式。
  • 輸出: 基於大量隨機模擬的近似結果。
  • 承諾: 能解決傳統數學無法解決的問題(如高維積分)。

核心思想 (直覺版)

「大數定律」 如果你重複一個實驗足夠多次,結果的平均值將收斂於真實的期望值。 與其試圖精確計算一副德州撲克手牌獲勝的概率(涉及巨大的組合數學),不如直接模擬打這副牌 100 萬次,然後統計贏的次數。

典型業務場景

  • ✅ 金融 (風險分析): 「我的投資組合明年虧損 20% 的機率有多大?」 模擬 10,000 種可能的股市未來。
  • ✅ 光線追蹤 (圖形學): 模擬數百萬個光子隨機彈跳,以創造逼真的光照和陰影效果。
  • ✅ AI (AlphaGo): 蒙地卡羅樹搜尋 (MCTS) 模擬數千種隨機的未來棋局,以決定當下的最佳著法。
  • ✅ 工程學: 透過模擬帶有隨機變化的風載荷來測試橋樑的可靠性。

性能與複雜度總結

  • 精度:N\sqrt{N} 提高(NN 是樣本數)。要使精度翻倍,你需要 4 倍的樣本。
  • 速度: 高度可平行化(你可以同時在 1,000 個 GPU 上執行模擬)。

小結:一句話記住它

「蒙地卡羅是『概率的暴力破解』。當方程式太難解時,就模擬她一百萬次。隨機性的總和往往能揭示真理。」