0
因此大多數編程語言都包含一個rand()函數,您可以在其中生成0到1之間的隨機數。 ,有沒有辦法操縱這個標準的rand()函數,這樣你就可以用平均值和標準偏差從正態分佈中抽取一個隨機數?使用標準rand()函數從標準正態分佈中繪製隨機數
請注意,我不是問一個語言是否具有內置的正常分佈功能,我問你是否可以使用rand()函數「模擬」繪製一個正態分佈的隨機變量...
因此大多數編程語言都包含一個rand()函數,您可以在其中生成0到1之間的隨機數。 ,有沒有辦法操縱這個標準的rand()函數,這樣你就可以用平均值和標準偏差從正態分佈中抽取一個隨機數?使用標準rand()函數從標準正態分佈中繪製隨機數
請注意,我不是問一個語言是否具有內置的正常分佈功能,我問你是否可以使用rand()函數「模擬」繪製一個正態分佈的隨機變量...
這裏是工作(從here)的簡單方法:
static Random r = new Random();
static double Normal(double mu, double sig)
{
double u, v, x, y, q;
do
{
u = r.NextDouble();
v = 1.7156 * (r.NextDouble() - 0.5);
x = u - 0.449871;
y = Math.Abs(v) + 0.386595;
q = Math.Sqrt(x) + y * (0.19600 * y - 0.25472 * x);
} while (q > 0.27597 && (q > 0.27846 || Math.Sqrt(v) > -4.0 * Math.Log(u) * Math.Sqrt(u)));
return mu + sig * v/u;
}
這是否幫助:轉換-A-均勻分佈到一個正常的分佈(http://stackoverflow.com /問題/ 75677 /轉換-一個均勻分佈到一個正常分佈) – nishant 2012-01-05 09:18:48