Python 提供了 random 模块,可以生成随机数。
这些是伪随机数,因为生成的数字序列取决于种子。
如果种子值相同,则序列也将相同。例如,如果您使用 2 作为种子值,您将始终看到以下序列。
import random
random.seed(2)
print(random.random())
print(random.random())
print(random.random())
输出将始终遵循此序列
0.9560342718892494 0.9478274870593494 0.05655136772680869
没那么随机,是吧? 由于此生成器是完全确定性的,因此不得用于加密目的。
以下是 random 模块中定义的所有函数列表及其简要说明。
| 函数 | 描述 |
|---|---|
| seed(a=None, version=2) | 初始化随机数生成器 |
| getstate() | 返回一个捕获生成器当前内部状态的对象 |
| setstate(state) | 恢复生成器的内部状态 |
| getrandbits(k) | 返回一个包含 k 个随机位的 Python 整数 |
| randrange(start, stop[, step]) | 从给定范围返回一个随机整数 |
| randint(a, b) | 返回一个介于 a 和 b 之间(包括 a 和 b)的随机整数 |
| choice(seq) | 从非空序列中返回一个随机元素 |
| shuffle(seq) | 打乱序列 |
| sample(population, k) | 从 population 序列中返回一个长度为 k 的唯一元素列表 |
| random() | 返回 [0.0, 1.0) 范围内的下一个随机浮点数 |
| uniform(a, b) | 返回一个介于 a 和 b 之间(包括 a 和 b)的随机浮点数 |
| triangular(low, high, mode) | 返回一个介于 low 和 high 之间,指定模式在这些边界之间的随机浮点数 |
| betavariate(alpha, beta) | Beta 分布 |
| expovariate(lambd) | 指数分布 |
| gammavariate(alpha, beta) | Gamma 分布 |
| gauss(mu, sigma) | 高斯分布 |
| lognormvariate(mu, sigma) | 对数正态分布 |
| normalvariate(mu, sigma) | 正态分布 |
| vonmisesvariate(mu, kappa) | Vonmises 分布 |
| paretovariate(alpha) | Pareto 分布 |
| weibullvariate(alpha, beta) | Weibull 分布 |
访问此页面以了解更多关于如何在 Python 中生成伪随机数。
