生成正态分布随机数的代码
时间: 2023-10-14 14:14:11 浏览: 80
生成正态分布随机数可以使用Python中的random模块和numpy模块的random子模块,具体代码如下:
使用random模块:
```python
import random
# 生成均值为mu,标准差为sigma的正态分布随机数
def normal_distribution(mu, sigma):
return random.normalvariate(mu, sigma)
# 例子:生成均值为0,标准差为1的正态分布随机数
num = normal_distribution(0, 1)
print(num)
```
使用numpy模块:
```python
import numpy as np
# 生成均值为mu,标准差为sigma的正态分布随机数
def normal_distribution(mu, sigma):
return np.random.normal(mu, sigma)
# 例子:生成均值为0,标准差为1的正态分布随机数
num = normal_distribution(0, 1)
print(num)
```
注意:以上代码中,参数mu表示正态分布的均值,参数sigma表示正态分布的标准差。
相关问题
c语言生成正态分布随机数的代码
在 C 语言中,可以使用 Box-Muller 算法来生成正态分布的随机数。下面是一个实现的代码示例:
```
#include <math.h>
#include <stdlib.h>
#include <time.h>
double normal_rand(double mean, double stddev) {
static double n2 = 0.0;
static int n2_cached = 0;
if (!n2_cached) {
double x, y, r;
do {
x = 2.0*rand()/RAND_MAX - 1;
y = 2.0*rand()/RAND_MAX - 1;
r = x*x + y*y;
} while (r == 0.0 || r > 1.0);
double d = sqrt(-2.0*log(r)/r);
double n1 = x*d;
n2 = y*d;
double result = n1*stddev + mean;
n2_cached = 1;
return result;
} else {
n2_cached = 0;
return n2*stddev + mean;
}
}
int main() {
srand(time(NULL));
double mean = 0.0;
double stddev = 1.0;
for (int i = 0; i < 10; i++) {
printf("%.2f\n", normal_rand(mean, stddev));
}
return 0;
}
```
请注意,这是一个随机数生成器,因此每次运行程序生成的随机数将不同。
matlab生成正态分布随机数
可以使用matlab中的randn函数来生成正态分布随机数。例如,如果要生成一个均值为mu,标准差为sigma的正态分布随机数,可以使用如下代码:
randn() * sigma + mu
其中,randn()生成一个均值为0,标准差为1的正态分布随机数,乘以sigma后再加上mu,即可得到所需的正态分布随机数。
阅读全文