1. 程式人生 > >simulation -- How to generate samples from UNIFORM

simulation -- How to generate samples from UNIFORM

出了 情況 blog 設計 for markdown sim logs ref

前不久在TED上看到了2010年菲爾茨獎得主賽德裏克·維拉尼的演講——數學為何如何有性感?沒想到如此大家的英語也是一股咖喱味->_->. 這不是重點,重點是在這個視頻中我再次看到了伽爾頓板(Bean machine)實驗,這個實驗早在中學時期就已經學過了,但是這次再看這個實驗卻讓我產生了疑惑。

可以想到,如果去掉漏鬥下方的銷釘點陣,在大量小球從漏鬥落下的過程中,不停搖動伽爾頓板,那麽小球落到每個狹槽內的概率應該是相同的,也就是最後會呈現一個均勻分布。但是加入銷釘點陣之後,再搖動伽爾頓板(其實搖不搖無所謂),最後呈現的是類似高斯分布的情況。也就是我們通過均勻分布產生了高斯分布。

這就讓我非常困惑,伽爾頓板實驗(隨機試驗)本質上就是一個采樣的過程,對於計算機而言,我們可以很方便地獲得(偽)隨機數,也就是對均勻分布進行采樣,但是如何對一般的概率分布進行采樣呢?既然,我們可以很方便地獲得均勻分布,那麽我們能不能通過設計某種機制(隨機試驗),將這些隨機數變換成一般的概率分布的樣本呢?離散的分布還好說,我們可以像設計輪盤賭(扇區未必是均勻的)那樣去設計算法,但是對於連續的分布呢?

正當我困惑不已的時候,我突然想到了monte carlo method(哦,對了,monte carlo method不等於monte carlo algorithm),遂恍然大悟。原來不止我有這樣的想法,前人也有類似的想法,並且因此發展出了一系列的統計模擬方法。統計模擬方法解決的正是如何從均勻分布構造一般的概率分布,從隨機數構造一般的分布的樣本的問題。

simulation -- How to generate samples from UNIFORM