当前课程知识点:计算思维与人工智能基础 >  第三部分:python基础 >  第八章:python生态库 >  8.4标准库-Random库

返回《计算思维与人工智能基础》慕课在线视频课程列表

8.4标准库-Random库在线视频

下一节:8.5标准库-Turtle库

返回《计算思维与人工智能基础》慕课在线视频列表

8.4标准库-Random库课程教案、知识点、字幕

下面我们给大家介绍random标准库

random库包含两类函数

常用的共有八个

基本随机函数,seed种子函数和random函数

还有扩展随机函数,randint,getrandbits

uniform,randrange,choice,shuffle

那我们在Jupyter下看一下这几个函数具体的使用

我们在使用random库的时候,首先也需要导入

那使用了这个随机种子以后我们可以看到

他得到的这个随机数是不变的

如果我们把这个再执行一下可以看的到我们得到的还是他

如果我们把这个random seed注释掉以后

让我们来看看他的得到的随机数是

每次都是不一样的

你可以看到那么这个seed函数就是这样使用的

再看一下我们的扩展的随机函数

randint那么这个是在我们指定的范围内产生一个随机数

每次产生不一样的

而random randrange是指定的一个范围内

可以指定步长

随机产生一个步长十到一百步长是十

那么每次的随机数就是十的倍数

可以看到这个随机数

还有个getrandbits

生成一个指定比特长度的一个随机整数

我们可以看到这个是四,四的话我们最大的是16

那么0到15可以产生

我们再产生一个,他最小的是0,我们可以看14

最大是15

那么uniform是我们指定范围内产生一个随机的小数或者说浮点数

我们可以看到他是大于十小于一百的浮点数

random.choice就是在我们这个序列里面选一个元素

它可以选次选不一样的

shuffle是我们给了这样一个序列

不过shuffle来进行重排,每次随机他的顺序

这就是我们用常用的这几个随机的扩展函数

我们来看一个例子

用随机函数来实现圆周率的计算

把下面这个方法称作蒙特卡洛法

怎么样去做呢?

我们现在有一个正方形

内部有一个镶嵌的圆

那我们来看一下圆和正方形的面积的比较

可以看出正方形是r

圆面积兀,r

他的比率呢就是四分之兀

那么这个是我们这样的一个例子来看

我们如何去设计

我们通过随机函数来去实现它呢?

那我们可以看圆和正方形的面积的比值是4分之兀

那么这个也就说我们把它分成这样从中心点开始分成这样子的

这一块是四分之一的面积

那么圆也是四分之一

他的比是不变

那我们在这个地方可以产生一些随机数

那么产生随机数这一块的所有的随机数

在圆里的随机数呢他的比也应该4分之兀这样的一个比例

这时候我们这个比例乘以四就是兀的值

这个就是用蒙特卡洛方法来实现求圆周率

具体的代码是分三步

第一步我们就要先产生N个点

然后第二部是要求每个点到圆心的距离

那么就求她的半径

半径如果是小于等于一的话

说明是在圆里的点

我们最后计算出它的比率乘以四就是我们派的值

如果写代码可以看的到我们首先要把random导进来

并且我们导进来一个计时的time库里面的perf_counter方法

下面我们来设计下我们要做的DARTS

我们可以看到他是一千剩一万个这样的点

这个hits是我们记录在圆内的点

start是我们用来记录我们的开始的时间

perf获得开始的时间

他们通过for循环

从一开始到DARTS这样这么多个点

每次可以随机到XY

我们这个是求每一个点到原点的距离也就是半径

如果这个值小于一的话,我们就可以给他进行计数

那么多次循环呢

这个就到DARTS这么多个点出来以后呢

我们可以看到hits和DARTS比他应该满足

4分之兀

那我们要求兀的话4乘以我们这个比率就得到兀

我们实际在看通过Jupyter看一下

我们这个代码求出来的圆周率会是多少

这是我们在Jupyter下刚才讲的这段代码

我们来看一下它的执行过程

我们可以把这个点数可以稍微放小一点,一千剩一千个点

看他用了几秒钟能计算出来

我们运行一下可以看的到开始计算

用了两秒多钟

那么3.141592

我们把这个点数可以增加到两千个点

那我们在运算一下可以看他用到的时间

要比刚才更长一点

3.7秒

3.140956

他比刚才那个更准确点1415926

它的差值会少

就更准确一些

那这就是我们通过随机函数蒙特卡罗的这个方法来计算圆周率

我们关于random函数就给大家介绍到这

计算思维与人工智能基础课程列表:

第一部分:计算思维

-1.计算思维的提出

-2.计算思维的要素与应用

-3.培养计算思维

-4.智能时代的教师与教学

-章测试

第二部分:人工智能

-1.人工智能的发展

-2.人工智能的实现与机器学习

-3.人工智能产业

-章测试

第三部分:python基础

-第一章:python简介

--1.1python的介绍

--1.2.anaconda的安装

--章测试

-第二章:编码规范

--2.1 python编码规范

--2.2常量和变量

--章测试

-第三章:数据类型

--3.1数据类型概述

--3. 2.数据转换

--3.3数据类型区别

--章测试

-第四章:基本运算

--4.1.基本运算符

--4.2比较运算符

--4.3逻辑运算符

--4.4位运算符

--4.5成员运算符与身份运算符

--4.6运算符的优先级

--章测试

-第五章:程序控制结构

--5.1顺序结构

--5.2条件结构

--5.3循环结构

--5.4跳转结构

--5.5异常处理

--章测试

-第六章:函数、模块与面向对象

--6.1函数的定义与调用

--6.2面向对象

--6.3魔法函数的应用

--6.4模块与包

--章测试

-第七章:文件操作

--7.1文件的打开与读取

--7.2文件的写入

--7.3CSV模块的应用

--章测试

-第八章:python生态库

--8.1第三方库的安装

--8.2标准库-Os库与Sys库

--8.3.标准库-Time库

--8.4标准库-Random库

--8.5标准库-Turtle库

--8.6第三方库-词云库

--8.7第三方库-pyinstaller库

--8.8第三方库-numpy库(上)

--8.9第三方库-numpy库(下)

--8.10第三方库-pandas库

--8.11第三方库-matplotlib库

--章测试

-第九章:TensorFlow基础

--9.1TensorFlow简介

--9.2TensorFlow 2.0的改进

--9.3TensorFlow的数据应用

--9.4 TensorFlow的设备应用

--9.5.TensorFlow中常用操作

--章测试

-第十章:实例分析与实践

--10.1认识回归问题

--10.2房价的预测

--10.3手写数字识别

--10.4卷积神经网络的介绍

--10.5全连接网络的搭建

--10.6卷积神经网络的实现服饰图片的分类

--10.7LeNet的介绍

--章测试

-第十一章:人工智能在自然语言中的应用

--11.1自然语言处理

--11.2命名实体识别技术

--11.3词向量表示

--11.4自然语言处理的挑战及应用

--章测试

8.4标准库-Random库笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。