700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【Python 标准库学习】伪随机数生成库 — random

【Python 标准库学习】伪随机数生成库 — random

时间:2019-01-26 05:12:26

相关推荐

【Python 标准库学习】伪随机数生成库 — random

欢迎加入 Python 官方文档翻译团队:/python-doc/

随机函数在很多科学计算中都会用到,比如生成一系列随机数来计算平均值、高斯分布、伽马分布、贝塔分布、对数正态分布等。

几乎所有模块函数都依赖于基本函数 random() ,它在半开放区间 [0.0,1.0) 内均匀生成随机浮点数。 Python 使用 Mersenne Twister 作为核心生成器。 它产生 53 位精度浮点数,周期为 219937-1 ,其在 C 中的底层实现既快又线程安全。 Mersenne Twister 是现存最广泛测试的随机数发生器之一。 但是,因为完全确定性,它不适用于所有目的,并且完全不适合加密目的。

random 模块官方文档:/3/library/random.html

random 模块部分常用函数:

常见函数应用举例:

random.random()

生成一个在 0.0 <= x < 1.0 之间的浮点数

>>> import random# 导入 random 模块>>> random.random() # 调用 random() 方法0.7811493181713127# 随机生成一个大于等于 0,小于 1 的浮点数

random.uniform(a, b)

在指定范围 [a, b] 内获取随机浮点数

>>> import random>>> random.uniform(-5, 5)-4.117969777026395>>> random.uniform(-10, -5)-8.257739458506384>>> random.uniform(1.8, 9.2)8.129467781976114

random.randint(a, b)

在指定范围 [a, b] 内获取随机整数

>>> import random>>> random.randint(1, 20)8

random.choice(seq)

从非空序列 seq 中返回一个随机元素

>>> import random>>> random.choice('tomorrow')'o'>>> random.choice(['python', 'c++', 'java'])'java'

random.sample(population, k)

返回在多个字符中(population)生成指定数量(k)的随机字符

>>> import random>>> random.sample('dsabkl2498sjdsa8asd7f0',5)['f', '2', 'a', 's', 's']

random.randrange(start, stop[, step])

在指定范围内(start, stop)返回一个间隔为 step 的随机整数,step 为可选参数

>>> import random>>> print(random.randrange(0, 10, 5))5>>> print(random.randrange(0, 11, 5))10>>> print(random.randrange(0, 10))7

random.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,并且在这些边界之间指定 mode,low 和 high 默认值为 0 和 1,mode 参数默认为边界之间的中点,持续使用该函数,可以得到以 mode 为对称点的随机分布数据集(在图上体现为一个三角形分布)

>>> import random>>> random.triangular()0.3604089623206311>>> random.triangular(0,10)7.215758147092778>>> random.triangular(0,10,15)10.965963151355984

random.betavariate(alpha, beta)

求 Beta 分布,参数条件:alpha > 0,beta > 0,返回值介于 0 ~ 1 之间

>>> import random>>> random.betavariate(4, 9)0.13445358577865857

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。