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做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
随机推荐
- UVA10570-Meeting with Aliens(枚举)
Problem UVA1616-Caravan Robbers Accept: 531 Submit: 2490Time Limit: 3000 mSec Problem Description I ...
- Linux中的update和upgrade的区别
update是更新源里的软件列表 upgrade顾名思义是升级,升级你系统里的软件
- Deep Knowledge Tracing (深度知识追踪)
论文:Deep Knowledge Tracing Addressing Two Problems in Deep Knowledge Tracing via Prediction-Consis ...
- python入门学习:9.文件和异常
python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件 首先创建一个pi_ ...
- 【转】Windows中设置Fiddler抓HTTPS请求的解决办法 Unable to configure Windows to Trust the Fiddler Root certificate .
官网设置 Click Tools > Fiddler Options > HTTPS. Click the Decrypt HTTPS Traffic box. 按照上述要求,我的设置是这 ...
- yaml的简单学习
参考http://www.ruanyifeng.com/blog/2016/07/yaml.html 基本语法规则如下. • 大小写敏感 • 使用缩进表示层级关系 • ...
- leetcode 557. Reverse Words in a String III 、151. Reverse Words in a String
557. Reverse Words in a String III 最简单的把空白之间的词反转 class Solution { public: string reverseWords(string ...
- Python脱产8期 Day11 2019/4/25
一 字符串比较 1.字符串比较:字符串对应的ascii进行比较 2.多个字符的字符串进行比较:从前往后逐个字符进行比较,一旦哪个位置的字符出现了大小关系就结束比较. 二 形参与实参 1.参数介绍: 函 ...
- buildroot使用介绍
buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.你可以和编译Linux内核一样,通过buildro ...
- windows下数据挖掘相关包numpy、pandas的安装
安装Anaconda的绕道 这里介绍如何在windows下安装numpy/scipy/matplotlib/pandas/scikit_learn等数据分析相关包 相关环境: win7 64位 pyt ...