1.随机种子 : 是指在伪随机数生成器中用于生成伪随机数的初始数值(百度百科),简单来说就是一个数,当这个数相同时就会产生一样的随机数,但是这个数不相同就会达到随机的效果,一般用时间做随机种子
2.imprt random 和 from random import * 的区别
这两个方法导入的内容是一样的,一个是导入random模块,另一个是导入模块中的函数,前者调用的时候要加上包名,后者调用的时候直接用方法名调用,最好不要直接调用包内的函数,可能会引起冲突
import random
random.seed(10)
from random import *
seed(10)
3. randint() 产生随机整数
number = random.randint(1, 20)
print(number)
# 7
4. randrange(a) 产生0-a之间的不包含a的随机整数
# 0-9之间的一个随机数
print(random.randrange(10))
# 7
5. randrange(a,b,step) 产生a-b之间步长为step的一个随机整数,左闭右开
# 在 0 2 4 6 8 之间随机产生一个数
print(random.randrange(0, 10, 2))
# 6
6. uniform(a,b) 在[a,b]之家随机产生一个浮点数
print(random.uniform(0, 10))
# 8.235888725334455
7. choice(seq) 从目标序列中随机返回一个元素
words = ["hello", "i", "am", "leetcode", "hello"]
print(random.choice(words))
# i
8. choices(seq,weights=none,k) 对序列进行重复k次采样,可设置权重,权重小说明被取到的概率小
words = ["hello", "i", "am", "leetcode", "hello"]
print(random.choices(words, k=5))
# ['hello', 'am', 'hello', 'hello', 'leetcode']
# 设置权重
print(random.choices(words, [5, 2, 3, 4, 5], k=5))
# ['i', 'am', 'hello', 'i', 'am']
9. shuffle(seq) 将序列中元素随机排列,返回打乱后的序列
words = ["hello", "i", "am", "leetcode", "hello"]
random.shuffle(words)
print(words)
# ['hello', 'i', 'hello', 'leetcode', 'am']
10. sample(pop,k) 从pop;类型中随机取k个元素,如果k大于pop的长度就会报错
words = ["hello", "i", "am", "leetcode", "hello"]
print(random.sample(words, 3))
# ['am', 'i', 'leetcode']
11. guess(mean,std) 产生一个符合高斯分布的随机数,mean-均值,std-标准差
number = random.gauss(0, 1)
print(number)
# 0.31794376845359923