目录
1、random 库中的常用随机数生成函数
2、一些用法举例
3、随机数种子 seed(a) 的理解与使用
random 库的主要目的就是生成随机数。
from random import *
1、seed(a=None) # 初始化随机数种子,默认值为当前系统的时间
2、random() # 生成一个 [0, 1.0) 之间的随机小数
3、randint(a, b) # 生成一个 [a, b] 之间的随机整数
4、getrandbits(k) # 生成一个 k 比特长度的随机整数
5、randrange(start, stop[,step]) # 生成一个 [start, stop) 之间以 step 递增的随机整数
6、uniform(a, b) # 生成一个 [a, b] 之间的随机小数
7、choice(seq) # 从序列类型(字符串、元组、列表等)中随机返回一个元素
8、shuffle(seq) # 将序列类型中的排列元素原地随机打乱,原位 *** 作,无返回值
9、sample(pop, k) # 从序列或集合类型中中随机选取 k 个元素,以列表类型返回
2、一些用法举例
from random import *
""" random() """
a = random()
print(a) # 输出 0.6128015245503746 一个 [0, 1.0) 之间的随机小数
""" uniform(a, b) """
b = uniform(2.0, 8.0)
print(b) # 输出 2.2387433193461854 一个 [2.0, 8.0] 之间的随机小数
""" randrange(start, stop[,step]) """
c = randrange(10, 20, 2) # step 参数默认为 1
print(c) # 输出 18 ,相当于从[10, 12, 13, 14, 15, 16, 17, 18, 19, 20] 中随机挑选一个返回
""" shuffle(seq) """
nums = [1, 2, 3, 4, 5, 6]
shuffle(nums) # 注意是原位 *** 作,无返回值
print(nums) # 输出 [5, 3, 4, 2, 1, 6]
""" sample(pop, k) """
pop1 = (1, 2, 3, 4, 5)
pop2 = "abcdefg"
d1 = sample(pop1, 2) # 从元组中随机抽取
print(d1) # 输出 [3, 1]
d2 = sample(pop2, 2) # 从字符串中随机抽取
print(d2) # 输出 ['g', 'a']
3、随机数种子 seed(a) 的理解与使用
计算机所有编程语言产生的随机数本质上是伪随机数,是根据特定的规则产生的,虽然看起来是随机的,但本质上是确定的,只是随着随机数种子的不同会产生不同的结果。
如果在程序运行时指定随机数种子,那么随机函数每次重新运行后产生的结果是一样的,举个例子:
from random import *
seed(10)
for i in range(3):
print(random())
上面这段代码给了个随机种子 10,然后输出三次,运行两次代码,结果如下:
可以发现每次运行的结果是一样的。
随机数种子的值可以是:None, int, float, str, bytes, bytearray 类型
前面说过,如果不设定seed,会默认在运行时使用系统时间作为随机数种子,因此此时每次运行程序得到的结果都是不一样的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)