① 如何產生正態分布的隨機數
•最簡單的:rejection sampling,思路很簡單,也很容易實現,但效率較差
•較復雜的:inverse CDF,直接利用累積分布函數(CDF)的反函數生成隨機數,但計算中牽扯到比較復雜的誤差函數erf(非初等函數)
•更好的:Box-Muller演算法,在很長時間內都是生成正態分布隨機數的"標准"演算法。Box-Muller演算法的特點是效率高,並且計算過程比較簡單(只用到了初等函數)。參見:Box-Muller transform
•目前最好的(相較於其它實用演算法):ziggurat演算法,效率很高,很多現代的編程語言都使用了這一演算法。ziggurat並不是人名,其含義是「金字形神塔」,不是埃及那個金字塔,而是古代蘇美爾人建造的類金字塔結構的神壇:神壇由多層平台構成,每層平台都呈矩形、卵形或正方形,且自下而上面積逐漸減小。ziggurat演算法實際上是一種改進的、包含查表操作的rejection sampling。