Box-Muller,一般是要得到服從常態分配的隨機數,基本思想是先得到服從均勻分布的隨機數再將服從均勻分布的隨機數轉變為服從常態分配。
基本介紹
- 中文名:box-muller
- 套用學科:數學
- 類別:算法
- 用途:產生隨機數
概述,方法,
概述
Box-Muller 算法隱含的原理非常深奧,但結果卻是相當簡單。它一般是要得到服從常態分配的隨機數,基本思想是先得到服從均勻分布的隨機數再將服從均勻分布的隨機數轉變為服從常態分配。
方法
如果在 (0,1] 值域內有兩個獨立的均勻分布的隨機數字 U1 和 U2,
可以使用以下兩個等式中的任一個算出一個常態分配的隨機數字 Z:
Z0 = R * cos( θ )
或
Z1= R * sin( θ )
其中,
R = sqrt(-2 * ln(U1))
θ = 2 * π * U2
那么Z0和Z1是滿足標準常態分配的獨立隨機數字。
由於R^2是二維常態分配(X,Y)的平方,所以它是有兩個自由度的卡方分布,在兩個自由度選取某個的特殊情況下,卡方分布和指數分布一致,所以上述R^2的方程式一個簡單的產生指數隨機數的方法。
X = m + (Z * sd)