作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

我们已经在Python运算中看到Python最基本的数学运算功能。此外,math包补充了更多的函数。当然,如果想要更加高级的数学功能,可以考虑选择标准库之外的numpy和scipy项目,它们不但支持数组和矩阵运算,还有丰富的数学和物理方程可供使用。

此外,random包可以用来生成随机数。随机数不仅可以用于数学用途,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

math包

math包主要处理数学相关的运算。math包定义了两个常数:

math.e  # 自然常数e

math.pi  # 圆周率pi

此外,math包还有各种运算函数 (下面函数的功能可以参考数学手册):

math.ceil(x)      # 对x向上取整,比如x=1.2,返回2

math.floor(x)     # 对x向下取整,比如x=1.2,返回1

math.pow(x,y)      # 指数运算,得到x的y次方

math.log(x)       # 对数,默认基底为e。可以使用base参数,来改变对数的基地。比如math.log(100,base=10)

math.sqrt(x)      # 平方根

三角函数: math.sin(x), math.cos(x), math.tan(x), math.asin(x), math.acos(x), math.atan(x)

这些函数都接收一个弧度(radian)为单位的x作为参数。

角度和弧度互换: math.degrees(x), math.radians(x)

双曲函数: math.sinh(x), math.cosh(x), math.tanh(x), math.asinh(x), math.acosh(x), math.atanh(x)

特殊函数: math.erf(x), math.gamma(x)

random包

如果你已经了解伪随机数(psudo-random number)的原理,那么你可以使用如下:

random.seed(x)

来改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

1) 随机挑选和排序

random.choice(seq)   # 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

random.sample(seq,k) # 从序列中随机挑选k个元素

random.shuffle(seq)  # 将序列的所有元素随机排序

2)随机生成实数

下面生成的实数符合均匀分布(uniform distribution),意味着某个范围内的每个数字出现的概率相等:

random.random()         # 随机生成下一个实数,它在[0,1)范围内。

random.uniform(a,b)     # 随机生成下一个实数,它在[a,b]范围内。

下面生成的实数符合其它的分布 (你可以参考一些统计方面的书籍来了解这些分布):

random.gauss(mu,sigma)    # 随机生成符合高斯分布的随机数,mu,sigma为高斯分布的两个参数。

random.expovariate(lambd) # 随机生成符合指数分布的随机数,lambd为指数分布的参数。

此外还有对数分布,正态分布,Pareto分布,Weibull分布,可参考下面链接:

假设我们有一群人参加舞蹈比赛,为了公平起见,我们要随机排列他们的出场顺序。我们下面利用random包实现:

importrandom

all_people= ['Tom', 'Vivian', 'Paul', 'Liya', 'Manu', 'Daniel', 'Shawn']

random.shuffle(all_people)for i,name inenumerate(all_people):print(i,':'+name)

练习

设计下面两种彩票号码生成器:

1. 从1到22中随机抽取5个整数 (这5个数字不重复)

2. 随机产生一个8位数字,每位数字都可以是1到6中的任意一个整数。

总结

math.floor(), math.sqrt(), math.sin(), math.degrees()

random.random(), random.choice(), random.shuffle()

python设置随机数种子为12_Python标准库12 数学与随机数 (math包,random包)(转载)...相关推荐

  1. Python学习笔记17:标准库之数学相关(math包,random包)

    前面几节看得真心累.如今先来点简单easy理解的内容. 一 math包 math包主要处理数学相关的运算. 常数 math.e   # 自然常数e math.pi  # 圆周率pi 运算函数 math ...

  2. python常用标准库有哪些-Python开发中常用的标准库

    大多数基于 Python 开发的应用程序都会用到本地标准库和三方库,这样不仅能让我们把时间去关注真正的业务开发,也能学习到更多价值含量高的程序设计和开发思想.程序开发中有一句著名的话叫做: Don't ...

  3. [转载] JAVA从菜鸟【入门】到新手【实习】一一一一Python 内置函数,标准库与第三方库(拓展库),常用框架

    参考链接: copyreg -注册pickle支持的函数 掌握了python的基本语法和面向对象的设计思想后是学习了程序设计的"使用"规则, 具体实现和调用要依赖"标准库 ...

  4. Python标准库 数学与随机数 (math包,random包)

    如果想要更加高级的数学功能,可以考虑选择标准库之外的numpy和scipy项目,它们不但支持数组和矩阵运算,还有丰富的数学和物理方程可供使用. 此外,random包可以用来生成随机数.随机数不仅可以用 ...

  5. 分隔符有哪些_Python有哪些常用的标准库?Python基础教程,常用标准库(一)

    上一节课我们学习了如何自定义模块,大家可以定义自己的模块,但是项目中通常不允许我们自己造轮子,所以本节课主要学习Python的标准库,学习使用别人的轮子,由于标准库内容较多,所以我们分开两次课程来学习 ...

  6. python分数类_利用标准库fractions模块让Python支持分数类型的方法详解

    前言 你可能不需要经常处理分数,但当你需要时,Python的Fraction类会给你很大的帮助.本文将给大家详细介绍关于利用标准库fractions模块让Python支持分数类型的相关内容,分享出来供 ...

  7. python几次方函数_Python标准库math中用来计算x的y次方的函数是pow(x,y)。

    [判断题]Python表达式int("110", 2)的值为6. [单选题]关于 Python 的复数类型,以下选项中描述错误的是( ). [判断题]现代物流管理以实现顾客满意为第 ...

  8. Python 文件数据格式之 CSV 标准库

    CSV CSV (Comma-Separated Values) 是一种通用的.相对简单的文件格式,经常用于表格数据和数据库数据的导入导出.特点:1.以行为单位, 2.每行表示一条记录, 3.以英文逗 ...

  9. python 内置函数 内置模块 标准库 第三方库 函数 模块 包 库

    大家在学习python时,会遇到这样的情况,有些东西直接就可以使用,例如str().len(): 而有些需要import 导入才能使用,比如sys.os.time.math: 还有些需要安装才能使用, ...

最新文章

  1. git的简单操作命令
  2. 奇小葩讲设备树(3/5)-- Linux设备树详解(三)u-boot设备树的传递
  3. sql serevr中脚本导出
  4. 腾讯专访 | 子芽:代码疫苗技术,赋能数字化应用内生安全自免疫
  5. HighNewTech:一文了解计算机思维、数学思维的本质区别,以及算法和程序的认知比较
  6. 前端三级联动 distpicker插件
  7. 烽火服务器安装系统,烽火服务器进入bios配置
  8. (c语言)自写求字符串长度函数
  9. HTML中的span是什么意思
  10. css3动画 魔方 无限滚动
  11. 数学建模常用算法—灰色预测
  12. [转]OKR结合CFR的管理模式
  13. ABR与ASBR是什么?区别又是什么?
  14. 如何查询一个 app 的 Android 和 iOS 下载量?
  15. uniapp 实现拨打电话
  16. linux系统显卡显存容量,Linux 查看显卡显存大小
  17. 《奇点临近》奇点和纪元
  18. HaaS轻应用(Python)总览
  19. 使用 django-blog-zinnia 搭建个人博客
  20. 安卓系统的导航仪怎么设置导航启动路径为高德地图_界面功能焕然一新!高德地图10.0新版体验...

热门文章

  1. ClouderaManager agent 报错,无法连接到结群 Error, CM server guid updated, expected xxx , received xxx
  2. 2021云栖大会开源引力峰会发布的战略合作,Grafana服务到底是什么?
  3. 深度强化学习在时序数据压缩中的应用--ICDE 2020收录论文
  4. 记一次Cassandra Java堆外内存排查经历
  5. MSSQL - 最佳实践 - 如何打码隐私数据列
  6. Spark in action on Kubernetes - Playground搭建与架构浅析
  7. 通过FD耗尽实验谈谈使用HttpClient的正确姿势
  8. 除了 Docker,我们还有哪些选择?
  9. Cloud一分钟 | 北京13部门召开座谈会,要求阿里京东等平台规范开展双11促销活动...
  10. c语言动态规划公共字符串,最长公共子串 C语言 动态规划