在C语言中,生成正态分布随机数的最佳方法是什么?

在C语言中,生成正态分布随机数的最佳方法是什么?,c,random,gaussian,normal-distribution,C,Random,Gaussian,Normal Distribution,我需要在我的程序中使用正态分布的随机数。假设我需要生成x(大小为R^(mxn)),其元素来自零均值和一个方差的高斯分布。如何在C语言中以良好的精度完成这项工作 如果你有一个均匀的随机发生器,有很多算法可以产生正态分布。看看维基百科的文章。一种可能的方法是使用。这里的方法是生成许多均匀分布的整数值,然后计算它们的算术平均值。,FWIW。这是一种常见的方法。最实用的方法是什么?需要十几个均匀的样本才能得到一个至少是大致正态分布的单一变量,而要得到更好的近似值则需要更多的样本。Box-Muller方法

我需要在我的程序中使用正态分布的随机数。假设我需要生成x(大小为R^(mxn)),其元素来自零均值和一个方差的高斯分布。如何在C语言中以良好的精度完成这项工作

如果你有一个均匀的随机发生器,有很多算法可以产生正态分布。看看维基百科的文章。一种可能的方法是使用。这里的方法是生成许多均匀分布的整数值,然后计算它们的算术平均值。

,FWIW。这是一种常见的方法。最实用的方法是什么?需要十几个均匀的样本才能得到一个至少是大致正态分布的单一变量,而要得到更好的近似值则需要更多的样本。Box-Muller方法并不是特别复杂。它只需要平方根、对数和三角学,即
libm
。可能没有更多的代码行。@delnan实际上我没有阅读所有建议的想法。我只是做了一些类似于中心极限定理的事情。我将重新表述答案。