什麼是蒲豐投針?
在數學的世界裡,存在著許多反直覺的驚人事實,以及看似無關的事件完美結合的美麗定理。其中最著名且最具魅力的問題之一就是 「蒲豐投針」 (Buffon’s needle problem)。
這個問題由18世紀法國博物學家兼數學家喬治-路易·勒克萊爾,布豐伯爵(Georges-Louis Leclerc, Comte de Buffon)於1733年提出,並在1777年首次得到解決。
令人驚訝的是,這個問題表明,透過「在地上隨機投針」這種極其物理且隨機的行為,就可以求得數學中最重要的常數之一: 圓周率 $\pi$ 。這被認為是幾何機率論(Geometric probability)中最早期的問題之一,也是後來的蒙地卡羅方法(Monte Carlo method)先驅的劃時代發現。
本文將從 蒲豐投針 的問題設定、其數學證明,到使用現代電腦進行模擬來估計圓周率,進行詳細且易懂的講解。
問題的基本設定
蒲豐投針的問題設定非常簡單。
- 在平坦的地板上,畫有許多等間距 $d$ 的平行直線。
- 準備一根長度為 $l$ 的針。
- 將這根針隨機地(無規則地)投向地板。
此時,「投下的針與地板上畫的任何一條平行線相交的機率是多少?」 就是蒲豐提出的問題。
以下圖表展示了這個實驗的概念流程。
graph TD
A["隨機投針"] -->|"重力與空氣阻力"| B["落到地板上"]
B --> C{"是否與線相交?"}
C -->|"是"| D["相交次數計數 (+1)"]
C -->|"否"| E["未相交"]
D --> F["計算機率 P"]
E --> F
F -->|"P = 2l / (πd)"| G["反算圓周率 π"]
在這裡,為了簡化問題,我們考慮針的長度 $l$ 小於或等於平行線間距 $d$ ($l \le d$)的 短針 情況。在這種條件下,針不會同時與兩條或以上的直線相交。
數學建模與機率的推導
為了用數學方法解決這個問題,需要對針的狀態進行數值化(參數化)。假設針落到地板上時,其位置和方向是完全隨機的。
為了確定針的位置,我們定義以下兩個變數:
- $x$ : 從針的中心到最近的平行線的垂直距離。
- $\theta$ : 針與平行線所成的銳角(或直角)。
變數的取值範圍
首先,我們考慮每個變數可能的取值。
- 關於距離 $x$: 針的中心會落在相鄰兩條平行線之間的某個位置。因為我們考慮的是到最近的線的距離,所以 $x$ 的最小值為 $0$ (針的中心在線上),最大值為 $\frac{d}{2}$ (針的中心恰好在兩條線的正中間)。也就是說, $0 \le x \le \frac{d}{2}$ 。由於針是隨機投下的,$x$ 在這個範圍內服從 均勻分配 。機率密度函數為 $\frac{2}{d}$ 。
- 關於角度 $\theta$: 針與平行線所成的角度從針與直線平行時的 $0$ ,到垂直時的 $\frac{\pi}{2}$ (90度)之間取值。由對稱性可知,不需要考慮更大的角度。因此, $0 \le \theta \le \frac{\pi}{2}$ 。由於針的方向也是隨機的,$\theta$ 在這個範圍內也服從 均勻分配 。機率密度函數為 $\frac{2}{\pi}$ 。
由於變數 $x$ 和 $\theta$ 相互獨立,它們取特定組合 $(x, \theta)$ 的聯合機率密度函數 $f(x, \theta)$ 可以表示為各自機率密度函數的乘積。
$$ f(x, \theta) = \frac{2}{d} \times \frac{2}{\pi} = \frac{4}{d\pi} $$相交的條件
接下來,考慮針與直線相交的條件。 當針中心到端點的垂直長度大於或等於到最近的線的距離 $x$ 時,針就會與直線相交。
因為針的長度為 $l$ ,所以中心到端點的長度為 $\frac{l}{2}$ 。 當角度為 $\theta$ 時,這半根針在垂直方向上佔據的距離(投影長度)為 $\frac{l}{2} \sin \theta$ 。
因此,針與直線相交的條件可以用以下不等式表示:
$$ x \le \frac{l}{2} \sin \theta $$機率的計算
針與線相交的機率 $P$ ,可以透過對滿足相交條件的區域,對聯合機率密度函數 $f(x, \theta)$ 進行積分來求得。
$$ P = \iint_{\text{相交區域}} f(x, \theta) \, dx \, d\theta $$具體的積分範圍是,$\theta$ 從 $0$ 變化到 $\frac{\pi}{2}$ ,而 $x$ 從 $0$ 變化到相交的極限值 $\frac{l}{2} \sin \theta$ 的範圍。
$$ P = \int_{0}^{\frac{\pi}{2}} \int_{0}^{\frac{l}{2} \sin \theta} \frac{4}{d\pi} \, dx \, d\theta $$首先,計算內側關於 $x$ 的積分:
$$ \int_{0}^{\frac{l}{2} \sin \theta} \frac{4}{d\pi} \, dx = \frac{4}{d\pi} \left[ x \right]_{0}^{\frac{l}{2} \sin \theta} = \frac{4}{d\pi} \left( \frac{l}{2} \sin \theta - 0 \right) = \frac{2l}{d\pi} \sin \theta $$然後,計算外側關於 $\theta$ 的積分:
$$ P = \int_{0}^{\frac{\pi}{2}} \frac{2l}{d\pi} \sin \theta \, d\theta = \frac{2l}{d\pi} \int_{0}^{\frac{\pi}{2}} \sin \theta \, d\theta $$由於 $\sin \theta$ 的積分是 $-\cos \theta$ ,所以:
$$ \int_{0}^{\frac{\pi}{2}} \sin \theta \, d\theta = \left[ -\cos \theta \right]_{0}^{\frac{\pi}{2}} = (-\cos \frac{\pi}{2}) - (-\cos 0) = -0 - (-1) = 1 $$因此,所求的機率 $P$ 如下所示:
$$ P = \frac{2l}{d\pi} \times 1 = \frac{2l}{\pi d} $$這就是 蒲豐投針 的基本公式。針與線相交的機率,等於針長 $l$ 的兩倍,除以圓周率 $\pi$ 和線間距 $d$ 的乘積。
圓周率 π 的估計(蒙地卡羅方法)
推導出的公式 $P = \frac{2l}{\pi d}$ 中巧妙地包含了 $\pi$ 。如果將其改寫為求 $\pi$ 的形式,則如下所示:
$$ \pi = \frac{2l}{P d} $$這個公式意味著,只要知道了機率 $P$ ,就能計算出圓周率 $\pi$ 。當然,真正的機率 $P$ 必須透過無限次試驗才能知道,但在實際實驗中透過多次投針,可以得到 $P$ 的近似值。
假設投針的總次數為 $N$ ,其中針與線相交的次數為 $C$ 。 當試驗次數 $N$ 足夠大時,根據大數法則,經驗機率 $\frac{C}{N}$ 將趨近於理論機率 $P$ 。
$$ P \approx \frac{C}{N} $$將其代入前面的公式,就可以得到求圓周率 $\pi$ 近似值的公式:
$$ \pi \approx \frac{2l \cdot N}{C \cdot d} $$計算最簡單的情況是,針的長度 $l$ 與線的間距 $d$ 相等時($l = d$)。此時,公式會變得更加簡單:
$$ \pi \approx \frac{2N}{C} $$也就是說,只需用「投針的次數」的兩倍除以「相交的次數」,就能求出圓周率!
使用 Python 進行模擬
實際手動投針數千次是一項極其繁重的工作(雖然在歷史上確實有進行過數千次實驗的數學家)。而在現代,我們可以使用電腦輕鬆地模擬這個實驗。
以下展示了一個使用 Python 模擬蒲豐投針實驗並估計圓周率的簡單程式碼範例:
| |
執行這段程式碼後,會利用亂數投下大量虛擬的針,並且可以確認能以非常高的精度得到 $3.1415...$ 這個圓周率的近似值。像這樣,利用亂數來求機率問題的近似解的方法,被稱為 蒙地卡羅方法 。
總結
蒲豐投針乍看之下似乎只是一個單純物理上的偶然遊戲,但其背後卻存在著堅實的數學理論。隨機事件(機率)與幾何形狀(直線與線段),以及終極無理數 $\pi$ 能夠融合在一個簡單的數學公式中,可以說這正是數學之美的體現。
此外,這個問題作為現代科學技術不可或缺的蒙地卡羅方法的起點,也具有歷史性的重要意義。無論是複雜系統的模擬,還是解析難以求解的積分計算,直到今天,蒲豐的思想仍在以各種形式支撐著我們的世界。
不妨準備紙、筆和幾根牙籤,在自己家裡也體驗一下這段偉大的數學歷史吧。
