关于python中random标准库的使用
2020-06-01 本文已影响0人
脏脏的小泥娃
random库是python中产生伪随机数的标准库。
伪随机数:采用梅森旋转算法生成的随机序列
random库的基本随机函数:
- random.seed(a=None) 初始化给定的随机数种子,默认为当前系统时间。例如:
random.seed(10)
- random.random() 生成一个[0.0,1.0]之间的随机小数
random.random()
random库的扩展随机函数:
- random.randint(a,b):生成一个[a,b]之间的整数。例如:
random.randint(10, 100)
- random.randrange(m,n[,k]):生成一个[m, n]之间以k为步长的随机整数。例如:
random.randrange(10,100,10)
- random.getrandbits(k):生成一个k比特长的随机数。例如:
random.getrandbits(16)
- random.uniform(a,b):生成一个[a, b]之间的随机小数。例如:
random.uniform(10,100)
- random.choice(seq):从序列seq中随机选择一个元素。例如:
seq = [1,2,3,4,5,6,7,8,9]
random.choice(seq)
- random.shuffle(seq):将序列seq中元素随机排列,返回打乱后的序列。例如:
seq = [1,2,3,4,5,6,7,8,9]
random.shuffle(seq)
print(seq)
'''
在python中如果有必要将多条语句写在一行,
语句之间需要使用分号分隔。
'''
计算圆周率实例:
#CalPi.py
'''
#使用公式计算圆周率
pi = 0
N = 100
for k in range(N):
pi += 1 / pow(16,k)*( \
4/(8*k+1) - 2/(8*k+4) - \
1/(8*k+5) - 1/(8*k+6))
print("圆周率的值时:{:.50f}".format(pi))
'''
#使用蒙特卡罗方法计算圆周率
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}".format(perf_counter()-start))