在学习random库之前,我们应该知道对于计算机来说所谓的随机数其实是伪随机数。从某种哲学角度上,世界上并没有完全随机的事情,或许只是人类对某些所谓的随机事件认识不全面。对于计算机来说的随机数是在各种复杂条件下(梅森旋转算法)产生的确定值,只不过这些复杂条件对于我们人类来说难以充分理解,超越我们的理解能力。
我们还需要引进一个概念‘随机数种子’,每一个确定的随机数种子确定一个确定的随机数序列,这个序列可以无限长。不同的随机数种子产生不同的随机数序列(这点也不难理解)。
我们将随机数函数分成两类:基本随机数函数和扩展随机数函数。
基本随机数函数:
seed(x):x为任意设置的参数,此参数作为随机数种子。
random()此函数记录当前系统时间,将其作为随机数种子,产生0-1之间随机数。
扩展随机数函数:
randint[a,b]:生成a,b之间的整数。
randrange(m,n[,k])生成一个[m,n]之间以k为步长的随机整数。
getrandbit(x):获得一个xbit大小的随机数。
choice(seq):从seq序列中随机选择一个元素。
shuffle(seq):将seq序列的顺序重新打乱。
注意:
如果要还原产生的随机数序列,我们可以调用seed函数自定义种子,之后再次调用此种子,便可以重现相同的随机数序列啦!