random是python标准库吗_python标准库介绍——27 random 模块详解
==random 模块==
"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin."
- John von Neumann, 1951``random`` 模块包含许多随机数生成器.
基本随机数生成器(基于 Wichmann 和 Hill ,1982的数学运算理论) 可以通过很多方法访问,
如 [Example2-29 #eg-2-29] 所示.
====Example 2-29. 使用 random 模块获得随机数字====[eg-2-29]
```
File: random-example-1.pyimportrandomfor i in range(5):#random float: 0.0 <= number < 1.0
printrandom.random(),#random float: 10 <= number < 20
print random.uniform(10, 20),#random integer: 100 <= number <= 1000
print random.randint(100, 1000),#random integer: even numbers in 100 <= number < 1000
print random.randrange(100, 1000, 2)*B*0.946842713956 19.5910069381 709 172
0.573613195398 16.2758417025 407 120
0.363241598013 16.8079747714 916 580
0.602115173978 18.386796935 531 774
0.526767588533 18.0783794596 223 344*b*```
注意这里的 ``randint`` 函数可以返回上界,
而其他函数总是返回小于上界的值. 所有函数都有可能返回下界值.
[Example2-30 #eg-2-30] 展示了 ``choice`` 函数, 它用来从一个序列里分拣出一个随机项目.
它可以用于列表, 元组, 以及其他序列(当然, 非空的).====Example 2-30. 使用 random 模块从序列取出随机项====[eg-2-30]
```
File: random-example-2.pyimportrandom#random choice from a list
for i in range(5):print random.choice([1, 2, 3, 5, 9])*B*2
3
1
9
1*b*```
在2.0及以后版本, ``shuffle`` 函数可以用于打乱一个列表的内容
(也就是生成一个该列表的随机全排列). [Example2-31 #eg-2-31] 展示了如何在旧版本中实现该函数.
====Example 2-31. 使用 random 模块打乱一副牌====[eg-2-31]
```
File: random-example-4.pyimportrandomtry:#available in 2.0 and later
shuffle =random.shuffleexceptAttributeError:defshuffle(x):for i in xrange(len(x)-1, 0, -1):#pick an element in x[:i+1] with which to exchange x[i]
j = int(random.random() * (i+1))
x[i], x[j]=x[j], x[i]
cards= range(52)
shuffle(cards)
myhand= cards[:5]printmyhand*B*[4, 8, 40, 12, 30]*b*```
``random`` 模块也包含了非恒定分布的随机生成器函数. [Example2-32 #eg-2-32]
使用了 gauss (高斯)函数来生成满足高斯分的布随机数字.====Example 2-32. 使用 random 模块生成高斯分布随机数====[eg-2-32]
```
File: random-example-3.pyimportrandom
histogram= [0] * 20
#calculate histogram for gaussian#noise, using average=5, stddev=1
for i in range(1000):
i= int(random.gauss(5, 1) * 2)
histogram[i]= histogram[i] + 1
#print the histogram
m =max(histogram)for v inhistogram:print "*" * (v * 50 /m)*B*****
**********
*************************
***********************************
************************************************
**************************************************
*************************************
***************************
*************
***
**b*```
你可以在//Python Library Reference//找到更多关于非恒定分布随机生成器函数的信息.*Note*标准库中提供的随机数生成器都是伪随机数生成器. 不过这对于很多目的来说已经足够了, 比如模拟, 数值分析, 以及游戏. 可以确定的是它不适合密码学用途.*note*
random是python标准库吗_python标准库介绍——27 random 模块详解相关推荐
- python的threading库_python标准库介绍——31 threading 模块详解
threading 模块 (可选) ``threading`` 模块为线程提供了一个高级接口, 如 [Example 3-1 #eg-3-1] 所示. 它源自 Java 的线程实现. 和低级的 ``t ...
- python箱线图_Python 箱线图 plt.boxplot() 参数详解
Python 绘制箱线图主要用 matplotlib 库里 pyplot 模块里的 boxplot() 函数. plt.boxplot() 参数详解 plt.boxplot(x, # 指定要绘制箱线图 ...
- 基于python的贝叶斯分类器_Python实现朴素贝叶斯分类器的方法详解
本文实例讲述了Python实现朴素贝叶斯分类器的方法.分享给大家供大家参考,具体如下: 贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有重要地位. 先 ...
- python修改文件内容_Python批量修改文本文件内容的方法详解
这篇文章主要介绍了Python批量修改文本文件内容的方法的相关资料,需要的朋友可以参考下 Python批量替换文件内容,支持嵌套文件夹 import os path="./" fo ...
- python控制nao机器人_python控制nao机器人身体动作实例详解
本文实例为大家分享了python控制nao机器人身体动作的具体代码,供大家参考,具体内容如下 今天读的代码,顺便写了出来,与文档的对比,差不多. import sys import motion im ...
- python中mat函数_python matplotlib中的subplot函数使用详解
python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳 ...
- python format函数实例_python中强大的format函数实例详解
python中format函数用于字符串的格式化 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下 ...
- python中mat函数_Python中flatten( )函数及函数用法详解
flatten()函数用法 flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组. flatten只能适用于numpy对象,即array或者mat,普通的list列 ...
- python创建双链表_Python双链表原理与实现方法详解
本文实例讲述了Python双链表原理与实现方法.分享给大家供大家参考,具体如下: Python实现双链表 文章目录 Python实现双链表 单链表与双链表比较 双链表的实现 定义链表节点 初始化双链表 ...
- python的对象数组_Python当中的array数组对象实例详解
计算机为数组分配一段连续的内存,从而支持对数组随机访问: 由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基本地址和项的偏移地址相加. 数组的基本地址就是数组的第一项 ...
最新文章
- ImageNet时代将终结?何恺明新作:Rethinking ImageNet Pre-training
- mysql Replication机制
- boost::detail::spinlock相关的测试程序
- sublime开发python需要安装哪些插件_Sublime text 3搭建Python开发环境及常用插件安装...
- 通过IHttpHandler实现图片验证码
- 95后夜猫子报告:三成熬夜到1点 夜间最爱追《乡村爱情》
- 逐渐摆脱高通和联发科!华为手机将采用更多麒麟芯片
- POJ 3734 Blocks (线性递推)
- ionic 视图滚动到顶部
- 《算法的乐趣》终于出版了
- java教程 doc,java 基础教程.doc
- 世界第一黑客:凯文.米特尼克
- 为什么要选择平台+独立站运营的双轨模式
- 学习React Native必看的几个开源项目
- linux停止阿里云盾服务
- LeCun:赋予机器 “常识” ,重新设计神经网络将是AI 研究重点
- 原理分析:安卓手机桌面长按分享,安卓发送软件apk,qq发送软件apk 原理
- [Discuz!] 头像HTML5上传 1.2 (saya_avatarupload)支持手机版
- 计算机专业的大学生必考证书,大学必考8大证书计算机
- Chart.js 中文文档(整理)