random模块快速入门

random是python的一个内置模块,专门用于生成随机数,但是要明确一点,random模块生成的并非真正的随机数,而是伪随机数。random提供的部分方法可以生成指定分布的随机数,比如生成符合高斯分布的随机数,这些方法在处理数学问题时将非常有用。

1. 随机数种子

random模块生成的都是伪随机数,具体生成的随机数是什么取决于随机数种子,当随机数种子相同时,生成的随机数也就相同。使用seed方法可设置随机数种子。

import random

random.seed(5)
print(random.randint(1, 100))           # 80

这段代码,不论谁执行,在哪里执行,生成的随机数都是80,因为随机数种子都是5,如果使用seed方法设置随机数种子或者seed方法在调用时不传参数,则使用系统当前的时间来作为随机数种子,这也是我们平常所采用的方法,不设置随机数种子。

某些情况下设置随机数种子,是为了让某个包含了随机数的算法能够有相同的结果,这样便于验证算法的正确性。

2. 生成指定分布的随机数

random模块的一些方法可以生成符合指定分布的随机数,比如random.gauss

def gauss(self, mu, sigma):
  • mu 是平均值
  • sigma 是标准差

下面的代码生成10000个符合平均值为3标准为1的随机数并绘制出直方图。

import random
import matplotlib.pyplot as plt


nums = []
for i in range(10000):
    value = random.gauss(3, 1)
    nums.append(value)

plt.hist(nums, bins=200)
plt.show()

除了高斯分布以外,random还支持生成指数分布,Gamma 分布等其他分布的随机数,在实践中,这类方法极少使用,因此不做过多介绍。

3. 随机生成整数的方法

3.1 random.randint(a, b)

random.randint方法返回一个随机整数N,N满足条件a <= N <= b

>>&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值