7.17 random库的使用

7.17 random库的使用

random库的基本介绍

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

  • 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
  • random库主要用于生成随机数
  • 使用random库:import random

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

  • 基本随机数函数: seed(), random()
  • 扩展随机数函数:randint(), getrandbits(), uniform(),randrange(), choice(), shuffle()

扩展随机数函数

函数描述
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中元素随机排列,返回打乱后的序列
import random

random.randint(10, 100)
# 64
random.randrange(10, 100, 10)
# 80
random.getrandbits(16)
# 37885
random.uniform(10, 100)
# 11.334920142209832
random.choice([1, 2, 3, 4, 5, 6, 7])
# 6
s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(s)
print(s)
# [3, 9, 7, 4, 1, 2, 6, 5, 8]

需要掌握的能力

  • 能够利用随机数种子产生"确定"伪随机数
  • 能够产生随机整数
  • 能够对序列类型进行随机操作

使用random库完成圆周率的近似计算

在正方形内部,随机产生10000个点(即10000个坐标对 (x, y)),计算它们与中心点的距离,从而判断是否落在圆的内部。如果这些点均匀分布,那么圆内的点应该占到所有点的 π/4,因此将这个比值乘以4,就是π的近似值。

watermark

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 = hits + 1
pi = 4 * (hits / DARTS)
print("圆周率近似值是: {}".format(pi))
print("运行时间是: {:.5f}s".format(perf_counter() - start))

​ 圆周率近似值是: 3.141364
​ 运行时间是: 0.71023s

转载于:https://www.cnblogs.com/dadazunzhe/p/11202415.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值