彩球連號比你想的常見?用 Monte Carlo 模擬破解直覺偏誤
先問個問題,彩球從 38 個號碼中抽 6 個,理論上每組會出現「連號對」(兩個相鄰的數字)的機率是多少,平均每期會出現幾對連號?0.5?1?2?
很多人會猜「應該很少,大概 0.2 對左右」。理由很直觀:38 個選 6 個,平均每個號碼之間應該隔 38/6 ≈ 6 格,連號感覺很稀有。
但這個直覺是錯的。連號其實非常常見,平均每期會出現超過 0.8 對。

從圖表比較「實際分布」和「模擬期望分布」:
- 約 40-50% 的期數有 0 對連號
- 約 30-40% 有 1 對連號
- 約 10-20% 有 2 對或更多
- 偶爾還會出現 3、4 對的爆量連號期
實際資料和模擬結果應該幾乎重疊——這正是「隨機」的證據。
我們可以使用程式進行模擬而不是公式求證
連號的精確機率可以用組合學算出來,但公式會涉及「相容性條件」「容斥原理」,寫起來很長,也容易算錯。
Monte Carlo 模擬給你一條捷徑:
「讓電腦模擬抽 50000 次彩票,看實際結果是什麼樣。」
假設模擬次數夠多,模擬出來的分布會無限逼近真實理論分布(大數法則保證)。
這在現代資料分析裡是個很重要的思維轉換:能模擬就別硬算公式。模擬不僅省腦力,還能處理那些「公式根本寫不出來」的複雜情況(例如有限制條件的抽樣)。
公式
連號對數的定義:把開出的 6 個號碼排序後,相鄰兩數差 = 1 的次數。
$$C = \sum_{i=1}^{5} \mathbb{1}\left[x_{(i+1)} - x_{(i)} = 1\right]$$
| 符號 | 意思 |
|---|---|
| $x_{(i)}$ | 排序後第 $i$ 個號碼 |
| $\mathbb{1}[\cdot]$ | 指示函數(條件成立=1,否則=0) |
| $C$ | 該期的連號對數 |
Monte Carlo 期望值估計:
$$E[C] \approx \frac{1}{N} \sum_{j=1}^{N} C_j$$
其中 $C_j$ 是第 $j$ 次模擬的連號對數。$N$ 越大,估計越準。
判定異常:
$$\text{偏差} = \frac{|\bar{C}_{\text{actual}} - E[C]|}{E[C]} \times 100\%$$
偏差 > 20% 視為異常。
看看程式分析結果
========== 彩球 連號分析 ==========
總期數 : 1891
實際平均連號 : 0.7610 對/期
模擬期望(50000 次): 0.7853 對/期
偏差百分比 : 3.10%
判定 : 正常範圍內
分布細節(每期連號對數):
0 對連號 : 772 期 (40.82%)
1 對連號 : 827 期 (43.73%)
2 對連號 : 265 期 (14.01%)
3 對連號 : 26 期 ( 1.37%)
4 對連號 : 1 期 ( 0.05%)
========== 樂透彩 連號分析 ==========
總期數 : 2115
實際平均連號 : 0.6265 對/期
模擬期望(50000 次): 0.6128 對/期
偏差百分比 : 2.24%
判定 : 正常範圍內
分布細節(每期連號對數):
0 對連號 : 1045 期 (49.41%)
1 對連號 : 836 期 (39.53%)
2 對連號 : 214 期 (10.12%)
3 對連號 : 19 期 ( 0.90%)
4 對連號 : 1 期 ( 0.05%)
結論
:連號是彩票的常態,不是異常。平均每期有 ~0.85 對連號,約 55% 的期數會出現至少一對連號。
連號分析用途
- 打破直覺偏誤:很多人選號會「自覺避開連號」,這實際上是降低自己中獎機率
- 驗證隨機性:如果某段期間「連號太多」或「太少」,可能是機制出了問題
- 教學工具:示範「模擬」作為「公式的替代品」這個重要思維
而另外一個有趣事實:6 個號碼從 1-38 抽,至少有 1 對連號的機率用排容原理可以算出來約 55%,這比大部分人猜的高很多。如果用模擬,10 行 Python 就能驗證這個答案。