random介绍
random库是使用随机数的Python标准库
从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,只不过这些条件我们没有理解,或者超出了我们的理解范围。计算机不能产生真正的随机数,那么伪随机数也就被称为随机数
–伪随机数:计算机中通过采用梅森旋转算法生成的(伪)随机序列元素
python中用于生成伪随机数的函数库是random
因为是标准库,使用时候只需要import random
基本随机函数
函数 | 描述 | 实例 |
---|---|---|
Seed(a=none) | 初始化给定的随机数种子,默认为当前系统时间 | |
Random() | Random.random() | |
Randint(a,b) | 生成一个(a,b)之间的整数 | |
Randrange(m,n,k) | 在m和n之间生成一个以K为步长的随机整数 | |
Getrandbits(k) | 生成一个K比特长的随机整数 | |
Uniform(a,b) | 生成一个(a,b)之间的随机小数 | |
Choice(seq) | 从序列seq中随机选择一个元素 | |
Shuffle(seq) | 将序列seq中元素随机排列,返回打乱后的序列 |
实例来啦
使用随机数计算圆周率
代码如下:
#使用随机数的方法计算圆周率
#_*_ conding=utf-8 _*_
from random import random
from time import perf_counter
DARTS=1000*1000
hits=0.0
start=perf_counter()
for i in range(1,DARTS+1):
x,y=random(),random()
dist=pow(x**2+y**2,0.5)
if dist <=1.0:
hits+=1
pi = 4*(hits/DARTS)
print("圆周率值是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter()-start))
效果出来
使用随机数实现随机双色球(自己闹着玩儿,彩票神器)
#_*_ conding=utf-8 _*_
import random
print("欢迎使用双色球随机生成器,祝您好运!")
while input()!='n':
red=[]
while len(red)!=6:
a=random.randint(1,33)
if a in red:
continue
red.append(a)#将随机值添加到red列表
red.sort()#进行排序
while True:
bule=random.randint(1,16)
if bule in red:
continue
else:
break
print(red,end="+" )
print(bule)
print("回车继续,n键回车退出")
效果出来