Python学习笔记17:标准库之数学相关(math包,random包)
前面几节看得真心累。如今先来点简单easy理解的内容。
一 math包
math包主要处理数学相关的运算。
常数
math.e # 自然常数e
math.pi # 圆周率pi
运算函数
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。
随机挑选和排序
random.choice(seq) # 从序列的元素中随机挑选一个元素,比方random.choice(range(10))。从0到9中随机挑选一个整数。
random.sample(seq,k) # 从序列中随机挑选k个元素
random.shuffle(seq) # 将序列的全部元素随机排序
随机生成实数
以下生成的实数符合均匀分布(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包实现:
import random
all_people = ['Tom', 'Vivian', 'Paul', 'Liya', 'Manu', 'Daniel', 'Shawn']
random.shuffle(all_people)
for i,name in enumerate(all_people):
print(i,':'+name)
最新文章
- java 文件上传
- 让webstorm支持avalon语法自动补全
- datatable group by
- .NET软件工程师面试总结
- JavaScript list 去重复
- php文件上传之多文件上传
- ubuntu maven环境安装配置
- (转载)c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值
- tomcat 部署多个项目的技巧
- 在一个字符串(1<;=字符串长度<;=10000,全部由大小写字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 使用openxml读取xml数据
- Volley框架支持HTTPS请求。
- 1034 - Navigation
- PyCharm常用设置
- QNX 多线程 (线程1每隔20ms读取 number;线程2每隔10ms计算一次)
- java 表现层:jsp、freemarker、velocity
- 复习C#
- python3的变量作用域规则和nonlocal关键字
- ServiceNow在中国还有没有模仿者?
- VSCode tasks.json中的各种替换变量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等