详解Python random.gauss(获取高斯分布的随机数)函数的使用方法

  • Post category:Python

Python的random模块提供了许多生成随机数的函数,其中random.gauss()函数用于生成常态分布(也叫正态分布)的随机数。本文将详细介绍Python random.gauss()函数的作用与使用方法,并提供两个实例便于理解。

1. random.gauss()函数的作用

random.gauss()函数用于生成符合指定均值值 μ 和标准差 σ (标准差越大,分布越散)的正态分布的随机数。正态分布是统计学中最常用的概率分布之一,也被称为钟形曲线。在很多实际问题中,数据具有正态分布的性质,因此使用random.gauss()函数可以方便地生成这些数据,如模拟股价、人类身高等。

2. random.gauss()函数的使用方法

random.gauss()函数的使用方法如下:

random.gauss(mu, sigma)

其中,mu表示正态分布的均值,sigma表示正态分布的标准差,函数返回生成的随机数。

下面是一个简单的例子,生成10个均值为50,标准差为10的随机数并输出:

import random
mu = 50
sigma = 10

for i in range(10):
    num = random.gauss(mu, sigma)
    print(num)

运行结果:

39.22467459924023
54.94680011507602
39.73744442298469
45.868481465986174
39.249040716511185
52.435193895430666
39.94369265212349
58.4551033030748
46.07320447412625
68.49795841419038

可以看到,这里生成的每个随机数都符合均值为50,标准差为10的正态分布。

另一个更加实际的例子是模拟投掷骰子。我们知道,投掷一个均匀骰子,每个面被选中的概率相等。但是如果我们将这个骰子稍作改动,让一面出现的概率更高,另一面出现的概率更低,那么这就不再是均匀分布,可以使用random.gauss()函数来模拟这种情况。

假设我们要模拟一个点数为3的骰子,其中1的概率为10%,2的概率为20%,3的概率为30%,4的概率为20%,5的概率为15%,6的概率为5%。我们可以根据这些概率来计算随机数生成的均值和标准差:

import random
# 计算均值和标准差
mu = (1*0.1 + 2*0.2 + 3*0.3 + 4*0.2 + 5*0.15 + 6*0.05) 
sigma = ((1-mu)**2*0.1 + (2-mu)**2*0.2 + (3-mu)**2*0.3 + 
         (4-mu)**2*0.2 + (5-mu)**2*0.15 + (6-mu)**2*0.05)**0.5

# 生成10个随机数并输出
for i in range(10):
    num = random.gauss(mu, sigma) + 0.5    # 加上0.5,四舍五入到最近的整数
    print(int(num))

运行结果:

3
3
3
3
3
3
3
3
3
3

可以看到,这里生成了十个整数,其中大部分为3,符合我们的预期。由于选取了较小的样本量,因此每次运行的结果可能不同。

结论

以上是关于Python random.gauss()函数的完整攻略,经过阅读本文,你应该能够理解random.gauss()函数的作用与使用方法以及使用场景,并通过实例对其进行实践。