Python__random库基本介绍
random库是使用随机数的Python标准库
从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,只不过这些条件我们没有理解,或者超出了我们的理解范围。计算机不能产生真正的随机数,那么伪随机数也就被称为随机数
--伪随机数:计算机中通过采用梅森旋转算法生成的(伪)随机序列元素
python中用于生成伪随机数的函数库是random
因为是标准库,使用时候只需要import random
random库包含两类函数,常用的共8个
--基本随机函数: seed(), random()
--扩展随机函数:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
基本随机数
Python中产生随机数使用随机数种子来产生 (只要种子相同,产生的随机序列,无论是每一个数,还是数与数之间的关系都是确定的,所以随机数种子确定了随机序列的产生)
随机数种子 梅森旋转算法 随机序列
10 0.5714025946899135
随机序列中的每一个数就是随机数
函数 |
描述 |
seed(a=None) |
初始化给定的随机数种子,默认为当前系统时间 >>>random.seed(10) #产生种子10对应的序列 |
random() |
生成一个[0.0,1.0)之间的随机小数 >>>random.random() 0.5714025946899135 #随机数产生与种子有关,如果种子是1哦,第一个数必定是这个 |
使用随机数种子的好处是可以复现有随机数的程序
扩展随机数函数
在random库中,最基本的是seed 和random 函数,但时功能比较单一,为此产生了6个扩展随机数函数
函数 | 描述 |
randint(a,b) |
生成一个[a,b]之间的整数 >>>random.randint(10,100) |
randrange(m,n[,k]) |
生成一个[m,n)之间以k为步长的随机整数 >>>random.randrange(10,100,10) |
getrandbits(k) |
生成一个k比特长的随机整数 >>>random.getrandbits(16) 37885 |
uniform(a,b) |
生成一个[a,b]之间的随机小数 >>>random.uniform(10,100) 16.848041210321334 |
choice(seq) 序列相关 |
从序列中随机选择一个元素 >>>random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]) 8 |
shuffle(seq) 序列相关 |
将序列seq中元素随机排列,返回打乱后的序列 >>>s=[1, 2, 3, 4, 5, 6, 7, 8, 9]; random.shuffle(s); print(s) [9, 4, 6, 3, 5, 2, 8, 7, 1] |
随机数函数的使用要点:
--能够利用随机数种子产生“确定”伪随机数 seed生成种子,random函数产生随机数
--能够产生随机整数
--能对序列类型进行随机操作
Python__random库基本介绍的更多相关文章
- ArUco----一个微型现实增强库的介绍及视觉应用(二)
ArUco----一个微型现实增强库的介绍及视觉应用(二) 一.第一个ArUco的视觉应用 首先介绍第一个视觉应用的Demo,这个应用场景比较简单,下面具体介绍: 1. 应用场景 主线程:通过摄像头检 ...
- ArUco----一个微型现实增强库的介绍及视觉应用(一)
ArUco----一个微型现实增强库的介绍及视觉应用(一) 一.ArUco简介 ArUco是一个开源的微型的现实增强库,目前好像已经集成在OpenCV3.0以上的版本内了,它除了用于现实增强,还很用于 ...
- c/c++ 标准库 pair 介绍
标准库 pair 介绍 问题:map里的元素由key和value组成,这个key和value的组合是什么类型呢??? 答案:pair类型 pair介绍: 它是模板 有2个公有成员可供访问. first ...
- 【Linux】 Ncures库的介绍与安装
Ncures库的介绍 ncurses(new curses)是一套编程库,它提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面. ncurses名字中的n意味着“new”,因为它是curse ...
- wordcloud库基本介绍和使用方法
一.wordcloud库基本介绍 1.1 wordcloud库概述 wordcloud是优秀的词云展示第三方库 词云以词语为基本单位,更加直观和艺术的展示文本 1.2wordcloud库的安装 pip ...
- qt 网络库使用介绍
qt 网络库使用介绍 在.pro文件中,要手动添加network模块:QT += network 有三个核心类, QNetworkAccessManager: 发送get或者post请求. 用get方 ...
- C++各大有名库的介绍——网络通信
ACE是C++库的代表,超重量级的网络通信开发框架.ACE自适配通信环境(Adaptive Communication Environment)是可以自由使用.开放源代码的面向对象框架,在其中实现了许 ...
- Python常用的库简单介绍一下
Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...
- Go语言标准库log介绍
Go语言标准库log介绍 无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直都是非常重要的一个环节,我们也应该养成在程序中记录日志的好习惯. log Go语言内置的log包实现了简单的日志服 ...
随机推荐
- SQL Server 错误:924 解决方法
USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM ma ...
- CodeForces 540B School Marks
http://codeforces.com/problemset/problem/540/B School Marks Time Limit:2000MS Memory Limit:26214 ...
- day 82 Django Admin组件.
一.先建表环境 modules文件 from django.db import models # Create your models here. from django.contrib.auth.m ...
- docker rpm 下载地址
http://yum.dockerproject.org/repo/main/centos/7/Packages/
- git fetch and git pull &冲突
1.git fetch和git pull之间的区别 git fetch只会将本地库所关联的远程库的commit id更新至最新,fetch不会改变代码,如果想使代码更新,需要使用git merge o ...
- Codeforces Round #452 (Div. 2) C. Dividing the numbers(水)
C. Dividing the numbers Petya has n integers: 1, 2, 3, ..., n. He wants to split these integers in t ...
- biz_platform项目过程
1.前台界面主要采用React框架.通过Ajax方式将数据与tornado服务器交互.以下代码为请求后台数据. var ThisPage = React.createClass({ render: f ...
- Flask从入门到精通之大型程序的结构一
尽管在单一脚本中编写小型Web 程序很方便,但这种方法并不能广泛使用.程序变复杂后,使用单个大型源码文件会导致很多问题.不同于大多数其他的Web 框架,Flask 并不强制要求大型项目使用特定的组织方 ...
- PHP之旅6 php的类与面向对象
对于类与面向对象的问题其实刚开始不用非要弄懂原因,直接先这样用,用多了你就发现你会了.所以 学习面向对象就先去做.用的多了你就发现这个就是这样的. 对于类的理解,我自己的理解就是:有一个叫做类的东西里 ...
- Oracle 数据类型 与C#映射关系
大部分类型的对应关系:原文:http://2143892.blog.51cto.com/2133892/499353 序号 Oracle数据类型 .NET类型 GetOracleValue类型 DbT ...