1、random库概述
(1)random库是使用随机数的Python标准库
-伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
-random库主要用于生成随机数
-使用random库:import random
(2)random库包括两类函数,常用共8个
基本:seed(),random()
扩展随机数函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
2、基本随机数函数
函数 | 描述 |
seed(a=None) | 初始化给定的随机数种子,默认为当前系统时间 >>> random.seed(10) #产生种子10对应的序列 #若不调用seed函数,会使用当前系统时间作为种子 |
random() | 生成一个[0.0,1.0)之间的随机小数 >>> random.random() |
若要再现随机序列,就需要种子
函数 | 描述 |
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) |
uniform(a,b) | 生成一个[a,b]之间的随机小数 >>> random.uniform(10,100) |
choice(seq) | 从序列seq中随机选择一个元素 >>> random.choice([1,2,3,4,5,6,7,8,9]) |
shuffle(seq) | 将序列seq中元素随机排列,返回打乱后的序列 >>> s=[1,2,3,4,5,6,7,8,9] #>>>s=[1,2,3,4,5,6,7,8,9];random.shuffle(s);print(s) |
3、“圆周率的计算”
数学公式:
#CalPiV1.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("圆周率值为:{}".format(pi))
圆周率值为:3.141592653589793
蒙特卡罗:
DARTS为抛洒点的总数量 hits目前在圆内部的总数量
利用for循环进行抛洒,random()产生0到1的坐标值