python学习笔记(8)--random库的使用
伪随机数:采用梅森旋转算法生成的伪随机序列中元素
使用random库
一、基本随机函数
随机数需要一个种子,依据这个种子通过梅森旋转算法产生固定序列的随机数。
seed(a=None) 初始化给定的随机数种子,默认为当前系统时间
random() 生成一个[0.0,1.0)之间的随机小数
>>> import random
>>> random.seed()
>>> random.random()
0.6229016948897019
>>> random.random()
0.7417869892607294
>>> random.seed()
>>> random.random()
0.6229016948897019
使用seed主要是在某些系统各种,根据这个随机种子,可以复现问题,如果不使用种子,则默认为当前系统的精度很大的时间,这个无法再重现。
二、扩展随机函数
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中元素随机排列,返回打乱后的序列
>>> random.randint(,) >>> random.randrange(,,) >>> random.uniform(,)
69.04468457583359
>>> random.getrandbits() >>> random.choice([,,,,,,]) >>> s=[,,,,,,]
>>> random.shuffle(s)
>>> s
[, , , , , , ]
三、圆周率计算问题
圆周率的计算,除了使用一个复杂的数学公式外,还可以通过计算机来模拟最初圆周率的计算方法蒙特卡罗方法。蒙特卡罗方法是指随机的在这个圆所在的正方形中撒粒子,然后计算圆中粒子的个数,依次来计算圆的面积,或者圆周率。那么现在计算机这个聪明,我们就可以通过计算机来模拟随机粒子,来计算圆周率。代码如下:
#getPi.py
from random import random
from time import perf_counter
DARTS = *
hits=0.0
start=perf_counter()
for i in range(,DARTS):
x, y = random(),random()
dist = pow(x** + y**, 0.5)
if dist <= 1.0:
hits +=
pi = *(hits/DARTS)
print("圆周率是:{}".format(pi))
print("运行时间为:{:.5f}s".format(perf_counter() - start))
python学习笔记(8)--random库的使用的更多相关文章
- 【Python学习笔记】Pandas库之DataFrame
1 简介 DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表. 或许说它可能有点像matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matla ...
- Python学习笔记之——requests库
requests库一个优雅而简单的用于Python的HTTP库,可以极大的简化我们发送http请求及获取响应的代码. requests是python的第三方库,所以使用之前需要先安装. 1.安装之后就 ...
- python学习笔记(自定义库文件路径)
博主最近在弄接口自动化.主要是基于python自带的unittest框架.包括 Pubilc模块定义所有接口. Main模块根据业务需求重新封装接口便于测试. config文件导入测试业务的固定参数. ...
- Python 学习笔记之—— PIL 库
PIL,全称 Python Imaging Library,是 Python 平台一个功能非常强大而且简单易用的图像处理库.但是,由于 PIL 仅支持到Python 2.7,加上年久失修,于是一群志愿 ...
- 吴裕雄--天生自然python学习笔记:beautifulsoup库的使用
Beautiful Soup 库简介 Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简 ...
- Python 学习笔记之random 模块
要使用Random 模块里的一些随机数方法需要先导入random 模块. 下面是几种常用的随机数方法: 以生成随机8位密码,包括大小写字母,数字为例 pwd = ''.join(random.samp ...
- Python 学习笔记之 Numpy 库——数组基础
1. 初识数组 import numpy as np a = np.arange(15) a = a.reshape(3, 5) print(a.ndim, a.shape, a.dtype, a.s ...
- python学习笔记(5)-time库的使用
import time 一.时间获取函数 time(), ctime(),gmtime() >>> import time >>> time.time() 1524 ...
- Python 学习笔记之 Numpy 库——文件操作
1. 读写 txt 文件 a = list(range(0, 100)) a = np.array(a) # a.dtype = np.int64 np.savetxt("filename. ...
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
随机推荐
- SpringBoot MVC 拦截器
SpringBoot MVC 环境搭建 在pom.xml添加spring-boot-starter-web <dependency> <groupId>org.spri ...
- Nginx系列一:正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡
转自https://www.cnblogs.com/leeSmall/p/9351343.html 仅供个人学习 一.什么是正向代理.什么是反向代理 1. 正向代理,意思是一个位于客户端和原始服务器( ...
- 【window】git安装教程
相关链接:https://blog.csdn.net/nly19900820/article/details/73379854 作者:smile.轉角 QQ:493177502
- (5)HomeAssistant 增加设备
将设备添加到Home Assistant https://www.home-assistant.io/docs/configuration/devices/ configuration.yaml文件 ...
- 16 python 初学(生成器)
列表生成器(列表生成式): 使用此种方式生成的列表会放在内存中占用内存 a = [x*2 for x in range(1, 11)] print(a) # >>> [2, 4, ...
- 14 python初学(高阶函数 递归函数 内置函数)
高阶函数:1. 函数名是一个变量,函数名可以进行赋值 2. 函数名可以作为函数参数,还可以作为函数返回值(函数名称作为函数返回值时返回的是:函数的地址:print 这个返回值的调用相当于执行这个函数 ...
- docker 5 docker-阿里云加速配置
阿里云加速配置 鉴于国内网络问题,后续拉取docker镜像十分缓慢,我们可以配置加速器来解决. 1.阿里云地址 https://dev.aliyun.com/ 如果你想注册,可以注册个账号. 不想注 ...
- 洛谷题解 P1138 【第k小整数】
蒟蒻发题解了 说明:此题我用的方法为桶排(我翻了翻有人用了桶排只不过很难看出来,可能有些重复的,这个题只是作为一个专门的桶排来讲解吧) (不会算抄袭吧 ‘QWaWQ’) 简单来说(会的人跳过就行): ...
- <网络编程>IO复用
IO复用是一种机制,一个进程可以监听多个描述符,一旦某个描述符就绪(读就绪和写就绪),能够同志程序进行相应的读写操作. 目前支持I/O复用的系统调用有select,poll,pselect,epoll ...
- ReactJs移动端兼容问题汇总
汽车H5使用ReactJs问题汇总 Q:安卓4.4webview显示空白? A:初步怀疑是css属性没有加前缀引发的兼容问题,但添加后发现也不行,通过webview调试后控制台输出Set is und ...