南通网站推广公司,湖南省网站备案时间,手机网站 返回顶部,长沙网站推广 下拉通推广欢迎加入 Python 官方文档翻译团队#xff1a;https://www.transifex.com/python-doc/ 随机函数在很多科学计算中都会用到#xff0c;比如生成一系列随机数来计算平均值、高斯分布、伽马分布、贝塔分布、对数正态分布等。
几乎所有模块函数都依赖于基本函数 random() #… 欢迎加入 Python 官方文档翻译团队https://www.transifex.com/python-doc/ 随机函数在很多科学计算中都会用到比如生成一系列随机数来计算平均值、高斯分布、伽马分布、贝塔分布、对数正态分布等。
几乎所有模块函数都依赖于基本函数 random() 它在半开放区间 [0.0,1.0) 内均匀生成随机浮点数。 Python 使用 Mersenne Twister 作为核心生成器。 它产生 53 位精度浮点数周期为 219937-1 其在 C 中的底层实现既快又线程安全。 Mersenne Twister 是现存最广泛测试的随机数发生器之一。 但是因为完全确定性它不适用于所有目的并且完全不适合加密目的。
random 模块官方文档https://docs.python.org/3/library/random.html
random 模块部分常用函数
函数功能random()返回一个在 [0.0, 1.0) 范围内的随机浮点数uniform(a, b)在指定范围 [a, b] 内返回一个随机浮点数randint(a, b)在指定范围 [a, b] 内返回一个随机整数choice(seq)从非空序列 seq 中返回一个随机元素sample(population, k)返回在多个字符中population生成指定数量k的随机字符randrange(start, stop[, step])在指定范围(start, stop) 内返回一个间隔为 step 的随机整数step 为可选参数shuffle(x)将序列 x 随机打乱位置triangular(low, high, mode)返回三角形分布的随机数low、high 为返回值的上下限mode 为中值betavariate(alpha, beta)求 Beta 分布的随机数其中 alpha 0、beta 0返回值的范围介于 0 和 1 之间expovariate(lambd)指数分布lambd 是 1.0 除以所需的平均值它应该是非零的如果 lambd 为正则返回值的范围为 0 到正无穷大如果 lambd 为负则返回值的范围为负无穷大到 0gammavariate(alpha, beta)Gamma 分布参数的条件是 alpha 0 和 beta 0gauss(mu, sigma)高斯分布mu 是平均值sigma 是标准差lognormvariate(mu, sigma)对数正态分布mu 是平均值sigma 是标准差mu 可以是任何值sigma 必须大于零normalvariate(mu, sigma)正态分布mu 是平均值sigma 是标准差vonmisesvariate(mu, kappa)冯·米塞斯分布von Misesmu 是平均角度以弧度表示介于 0 和 2 * pi 之间kappa 是浓度参数必须大于或等于零如果 kappa 等于零则该分布在 0 到 2 * pi 的范围内减小到均匀的随机角度paretovariate(alpha)帕累托分布alpha 是形状参数weibullvariate(alpha, beta)威布尔分布alpha 是比例参数beta 是形状参数
常见函数应用举例
random.random()
生成一个在 0.0 x 1.0 之间的浮点数 import random # 导入 random 模块random.random() # 调用 random() 方法
0.7811493181713127 # 随机生成一个大于等于 0小于 1 的浮点数random.uniform(a, b)
在指定范围 [a, b] 内获取随机浮点数 import randomrandom.uniform(-5, 5)
-4.117969777026395random.uniform(-10, -5)
-8.257739458506384random.uniform(1.8, 9.2)
8.129467781976114random.randint(a, b)
在指定范围 [a, b] 内获取随机整数 import randomrandom.randint(1, 20)
8random.choice(seq)
从非空序列 seq 中返回一个随机元素 import randomrandom.choice(tomorrow)
orandom.choice([python, c, java])
javarandom.sample(population, k)
返回在多个字符中population生成指定数量k的随机字符 import randomrandom.sample(dsabkl2498sjdsa8asd7f0,5)
[f, 2, a, s, s]random.randrange(start, stop[, step])
在指定范围内 (start, stop) 返回一个间隔为 step 的随机整数step 为可选参数 import randomprint(random.randrange(0, 10, 5))
5print(random.randrange(0, 11, 5))
10print(random.randrange(0, 10))
7random.shuffle(x)
将序列 x 随机打乱位置 a [1, 2, 3, 4, 5]random.shuffle(a)a
[2, 5, 4, 1, 3]random.triangular(low, high, mode)
返回三角形分布的随机数返回的随机浮点数 N 满足 low N high并且在这些边界之间指定 modelow 和 high 默认值为 0 和 1mode 参数默认为边界之间的中点持续使用该函数可以得到以 mode 为对称点的随机分布数据集在图上体现为一个三角形分布 import randomrandom.triangular()
0.3604089623206311random.triangular(0,10)
7.215758147092778random.triangular(0,10,15)
10.965963151355984random.betavariate(alpha, beta)
求 Beta 分布参数条件alpha 0beta 0返回值介于 0 ~ 1 之间 import randomrandom.betavariate(4, 9)
0.13445358577865857