Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数(前8个最常用):
import random
(1)random.expovariate(lambd)指数分布
指数分布。lambd=1.0/期望的平均值。它应该是非零的。(该参数被称为“lambda”,但这在Python中是一个保留字。).如果lambd为正,返回的值范围从0到正无穷;如果lambd为负,返回的值范围从负无穷到0。如,顾客到达时间服从指数分布,时间间隔平均为10分钟,则lambd=1.0/10。
(2)random.random
用于生成一个0到1的随机符点数: 0 <= n < 1.0
(3)random.uniform
用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。
(4)random.randint
用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。size是表示生成总共多少个数。若size=2,则表示该数组里有2个元素。
(5)random.randrange
从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。
(6)random.choice
从序列中获取一个随机元素。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。
(7)random.shuffle
用于将一个列表中的元素打乱。
(8)random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。这个模块很 "变态",还支持三角、β分布、指数分布、伽马分布、高斯分布等等非常专业的随机算法。
(9)random.triangular(low, high, mode)
Return a random floating point number N such that low <= N <= high and with the specified mode between those bounds. The low and highbounds default to zero and one. The mode argument defaults to the midpoint between the bounds, giving a symmetric distribution.
(10)random.betavariate(alpha, beta)β分布
Beta distribution. Conditions on the parameters are alpha > 0 and beta > 0. Returned values range between 0 and 1.
(11)random.seed([x])
伪随机数生成模块。如果不提供 seed,默认使用系统时间。使用相同的 seed,可以获得完全相同的随机数序列,常用于算法改进测试。
>>>from random import *
>>>a = Random(); a.seed(1)
>>>[a.randint(1, 100) for i in range(20)]
[14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 44, 77, 1, 45, 73, 23, 95, 91, 4]
>>>b = Random(); b.seed(1)
>>>[b.randint(1, 100) for i in range(20)]
[14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 44, 77, 1, 45, 73, 23, 95, 91, 4]
(12)random.gammavariate(alpha, beta)伽马分布
Gamma distribution. (Not the gamma function!) Conditions on the parameters are alpha > 0 and beta > 0.
(13)random.gauss(mu, sigma)高斯分布
Gaussian distribution. mu is the mean, and sigma is the standard deviation. This is slightly faster than the normalvariate() function defined below.
(14)random.lognormvariate(mu, sigma)对数正态分布
Log normal distribution. If you take the natural logarithm of this distribution, you’ll get a normal distribution with mean mu and standard deviation sigma. mu can have any value, and sigma must be greater than zero.
(15)random.normalvariate(mu, sigma)正态分布
normalvariate是正态分布。mu是均值,sigma是标准差。
random.vonmisesvariate(mu, kappa)
mu是平均角度,表示在0到2*pi之间的弧度,kappa是浓度参数,必须大于等于0。如果kappa等于0,这个分布会在0到2*pi之间减小为均匀的随机角度。
(16)random.paretovariate(alpha)帕累托分布
Pareto distribution. alpha is the shape parameter.
(17)random.weibullvariate(alpha, beta)
威布尔分布。alpha是尺度参数,beta是形状参数。
网友评论