Python__random库基本介绍

 

random库是使用随机数的Python标准库

从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,只不过这些条件我们没有理解,或者超出了我们的理解范围。计算机不能产生真正的随机数,那么伪随机数也就被称为随机数

--伪随机数:计算机中通过采用梅森旋转算法生成的(伪)随机序列元素

python中用于生成伪随机数的函数库是random

因为是标准库,使用时候只需要import random

random库包含两类函数,常用的共8个

        --基本随机函数: seed(), random()

        --扩展随机函数:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()

 

 基本随机数

Python中产生随机数使用随机数种子来产生      (只要种子相同,产生的随机序列,无论是每一个数,还是数与数之间的关系都是确定的,所以随机数种子确定了随机序列的产生)

随机数种子       梅森旋转算法    随机序列

10                                                0.5714025946899135

随机序列中的每一个数就是随机数

基本随机函数 
函数

描述

  seed(a=None)  

 初始化给定的随机数种子,默认为当前系统时间

>>>random.seed(10)     #产生种子10对应的序列

 random()

 生成一个[0.0,1.0)之间的随机小数

>>>random.random()

0.5714025946899135            #随机数产生与种子有关,如果种子是1哦,第一个数必定是这个

 

 

 

 

 

 

 

 

 

使用随机数种子的好处是可以复现有随机数的程序

扩展随机数函数

在random库中,最基本的是seed 和random 函数,但时功能比较单一,为此产生了6个扩展随机数函数

扩展随机数函数
函数 描述
 randint(a,b)

 生成一个[a,b]之间的整数

>>>random.randint(10,100)

 randrange(m,n[,k])

 生成一个[m,n)之间以k为步长的随机整数

>>>random.randrange(10,100,10)

 getrandbits(k)

 生成一个k比特长的随机整数

>>>random.getrandbits(16)

37885

 uniform(a,b)

 生成一个[a,b]之间的随机小数

>>>random.uniform(10,100)

16.848041210321334

 choice(seq)   

序列相关

 从序列中随机选择一个元素

>>>random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])

8

 shuffle(seq)

序列相关

 将序列seq中元素随机排列,返回打乱后的序列

>>>s=[1, 2, 3, 4, 5, 6, 7, 8, 9]; random.shuffle(s); print(s)

[9, 4, 6, 3, 5, 2, 8, 7, 1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

随机数函数的使用要点:

--能够利用随机数种子产生“确定”伪随机数   seed生成种子,random函数产生随机数

--能够产生随机整数

--能对序列类型进行随机操作

 

posted @ 2018-04-15 12:03  maskedguy  阅读(46531)  评论(0编辑  收藏  举报