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做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
随机推荐
- UVA12627-Erratic Expansion(递归)
Problem UVA12627-Erratic Expansion Accept: 465 Submit: 2487Time Limit: 3000 mSec Problem Descriptio ...
- linux 下的启动项
/etc/profile 这个也是启动脚本.而且优先级很高哦.. 以下都是网上找来的 (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片 ...
- [matlab] 3.矩阵
matlab矩阵运算很强大 ,几乎所有涉及矩阵运算的命令都有. 事实上,matlab里面所有变量都是以矩阵的形式保存下来的. %% >> x=[1:2.1:10] x = 1.0000 ...
- [ZJOI2015]诸神眷顾的幻想乡
嘟嘟嘟 这题除了暴力我就不会了,感觉得用SAM,但是又和普通的SAM不一样. 看了题解才知道,这东西叫广义后缀自动机. 就是解决例如多个串的本质不同的子串的个数这样的问题. 做法就是每插入完一个串,就 ...
- Ansible 拷贝文件或目录
写法如下: [root@localhost ~]$ ansible 192.168.119.134 -m copy -a "src=/etc/passwd dest=/tmp/passwd ...
- 【转】iOS弹幕库OCBarrage-如何hold住每秒5000条巨量弹幕
最近公司做新需求, 原来用的老弹幕库, 已经无法满足需要. 迫不得已自己写了一套弹幕库OCBarrage. 这套弹幕库轻量, 可拓展, 高度自定义, 超高性能, 简单易上手. 无论哪家公司软件的性能绝 ...
- 009_一行python重要工具
一.一行启动httpserver 你可以先登录容器(webssh),然后(注意必须是在/data/log/debug/pprof/目录) 例如生成 jvm dump文件 jmap -dump:form ...
- jupyter notebook 代码补全插件工具-nbextensions(并修改默认的工作目录)
# conda install -c conda-forge jupyter_contrib_nbextensionsCollecting package metadata: doneSolving ...
- Java多线程编程核心技术(一)Java多线程技能
1.进程和线程 一个程序就是一个进程,而一个程序中的多个任务则被称为线程. 进程是表示资源分配的基本单位,线程是进程中执行运算的最小单位,亦是调度运行的基本单位. 举个例子: 打开你的计算机上的任务管 ...
- ProxySQL+Mysql实现数据库读写分离实战
ProxySQL介绍 ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎.具有以下特性:http://www.proxysql.com/ 1.连接池,而且是multiplexing 2 ...