C语言产生正态分布随机数的代码
时间: 2024-12-22 14:28:43 浏览: 37
在C语言中生成正态分布(高斯分布)的随机数通常需要一些库支持,因为C标准库本身并不提供这样的功能。一个常见的做法是使用一些数学库,如`gsl`(GNU科学计算库),它包含了一个函数`gsl_ran_gaussian()`用于生成正态分布的随机数。
以下是一个简单的示例,假设你已经包含了`gsl/gsl_rng.h`和`gsl/gsl_randist.h`头文件,并且创建了GSL随机数生成器:
```c
#include <stdio.h>
#include <gsl/gsl_rng.h>
#include <gsl/gsl_randist.h>
int main() {
// 创建一个默认的随机数生成器
gsl_rng *r = gsl_rng_alloc(gsl_rng_default);
// 设置平均值和标准差,这里假设均值μ=0,标准差σ=1
double mu = 0.0;
double sigma = 1.0;
// 生成一个服从正态分布的随机数
double random_number = gsl_ran_gaussian(r, sigma);
printf("A normally distributed random number is: %.4f\n", random_number);
// 清理资源
gsl_rng_free(r);
return 0;
}
```
阅读全文