先問個問題,彩球從 38 個號碼中抽 6 個,理論上每組會出現「連號對」(兩個相鄰的數字)的機率是多少,平均每期會出現幾對連號?0.5?1?2?

很多人會猜「應該很少,大概 0.2 對左右」。理由很直觀:38 個選 6 個,平均每個號碼之間應該隔 38/6 ≈ 6 格,連號感覺很稀有。

但這個直覺是錯的。連號其實非常常見,平均每期會出現超過 0.8 對。


40652-pxkr28wyeok.png

從圖表比較「實際分布」和「模擬期望分布」:

  • 約 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 就能驗證這個答案。

無標籤

關注作者:

新增評論