random库的使用
一、random库介绍
random库是使用随机数的Python标准库
- 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
- random库主要用于生成随机数
- 使用random库:
import random
1.1 random库概述
random库包括两类函数,常用共8个
- 基本随机数函数:
seed(), random()
- 扩展随机数函数:
randint(), getrandbits(), uniform(),randrange(), choice(), shuffle()
二、基本随机数函数
2.1随机数种子
[]
函数 | 描述 |
---|---|
seed(a=None) | 初始化给定的随机数种子,默认为当前系统时间 |
random() | 生成一个[0.0, 1.0)之间的随机小数 |
import random
random.seed(10) # 产生种子10对应的序列
random.random()
结果:0.5714025946899135
random.random()
结果:0.4288890546751146
random.seed(10)
random.random()
结果:0.5714025946899135
三、扩展随机数函数
函数 | 描述 |
---|---|
randint(a,b) | 生成一个[a, b]之间的整数 |
randrange(m, n[, k]) | 生成一个[m, n)之间以k为步长的随机整数 |
getrandbits(k) | getrandbits(k) |
uniform(a, b) | 生成一个[a, b]之间的随机小数 |
choice(seq) | 从序列seq中随机选择一个元素 |
shuffle(seq) | 将序列seq中元素随机排列,返回打乱后的序列 |
eg: randint()
import random
random.randint(10, 100)
结果:60
eg:randrange()
import random
random.randrange(10, 100, 10)
结果:80
eg:getrandbits()
import random
random.getrandbits(16)
结果:37885
eg:uniform()
import random
random.uniform(10, 100)
结果:11.334920142209832
eg:choice()
import random
random.choice([1, 2, 3, 4, 5, 6, 7])
结果:5
eg:shuffle()
import random
s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(s)
print(s)
结果:[3, 9, 7, 4, 1, 2, 6, 5, 8]
3.1 随机函数的使用
需要掌握的能力
- 能够利用随机数种子产生"确定"伪随机数
- 能够产生随机整数
- 能够对序列类型进行随机操作
四、圆周率的计算
- 蒙特卡洛方法
from random import random
from time import perf_counter
DARTS = 1000 * 1000
hits = 0.0
start = perf_counter()
a
for i in range(1, DARTS + 1):
x, y = random(), random()
dist = pow(x**2 + y**2, 0.5)
if dist <= 1.0:
hits = hits + 1
pi = 4 * (hits / DARTS)
print("圆周率值是: {}".format(pi))
print("运行时间是: {:.5f}s".format(perf_counter() - start))
在当下的阶段,必将由程序员来主导,甚至比以往更甚。