第1个回答 2024-11-05
Python中`random`模块是用于生成随机数、随机选择元素的工具。其核心在于随机种子的设定,若设置相同种子,则每次随机结果相同;反之,则根据系统时间随机。
使用`random`模块生成随机整数有多种方法:
1. `randrange(start, end, step)`:从序列`range(start, end, step)`中随机生成一个整数,注意不包含`end`。
2. `randint(start, end)`:从`[start, end]`中随机生成一个整数。
在序列中随机选择元素的函数包括:
1. `choice(seq)`:从序列中随机选择一个元素。
2. `choices(seq,weights,*,cum_wights,k)`:通过设置权重来控制序列中每个元素被选中的概率。
3. `sample(seq,k,*,counts)`:从序列中无重复选取`k`个元素。
4. `shuffle(seq[, random_func])`:利用`random_func`将`seq`元素位置打乱。
生成随机小数的函数有:
1. `random()`:生成`[0,1)`之间的随机小数。
2. `uniform(a,b)`:生成`[a,b]`之间的随机小数。
3. `triangular(low,high,mode)`:生成对称分布的随机浮点数。
4. `beta(a,b)`:生成Beta分布的随机浮点数,范围在`[0,1]`。
5. `expovariate(lambd)`:生成指数分布的随机数,其中`lambd`为期望值。
6. `gammavariate(alpha,beta)`:生成Gamma分布的随机数。
7. `gauss(mu,sigma)`:生成高斯分布(正态分布)的随机数。
8. `lognormvariate(mu,sigma)`:生成对数正态分布的随机数。
9. `normalvariate(mu,sigma)`:生成正态分布的随机数。
10. `vonmisesvariate(mu,kappa)`:生成冯·米塞斯分布的随机数。
11. `paretovariate(alpha)`:生成帕累托分布的随机数。
12. `weibullvariate(alpha,beta)`:生成威布尔分布的随机数。