math random模块
math --- 数学函数
该模块提供了对C标准定义的数学函数的访问,返回值除非有明确说明,否则所有返回值均为浮点数
math.ceil(x)
返回 x 的上限,即大于或者等于 x 的最小整数。
如果 x 不是一个浮点数,则委托 x.__ceil__(), 返回一个 Integral 类的值
>>> math.ceil(3.000000000000001)
4
>>> math.ceil(3.0000000000000001)
3
math.floor(x)
返回 x 的向下取整,小于或等于 x 的最大整数。
如果 x 不是浮点数,则委托 x.__floor__() ,它应返回 Integral 值
math.pow(x, y)
将返回 x 的 y 次幂。
特殊情况尽可能遵循C99标准的附录'F'。
特别是, pow(1.0, x) 和 pow(x, 0.0) 总是返回 1.0 ,即使 x 是零或NaN。
如果 x 和 y 都是有限的, x 是负数, y 不是整数那么 pow(x, y) 是未定义的,并且引发 ValueError 。
与内置的 ** 运算符不同, math.pow() 将其参数转换为 float 类型。
使用 ** 或内置的 pow() 函数来计算精确的整数幂。
>>> float('nan')
nan
>>> x = float('nan')
>>> math.pow(1.0, x)
1.0
>>>
>>> math.pow(x, 0.0)
1.0
math.sqrt(x)
返回 x 的平方根
math.fabs(x)
返回 x 的绝对值
math.modf(x)
返回 x 的小数和整数部分。两个结果都带有 x 的符号并且是浮点数
>>> x = math.pi
>>> a, b = math.modf(x)
>>> a, b
(0.14159265358979312, 3.0)
math.copysign(x, y)
返回一个基于 x 的绝对值和 y 的符号的浮点数。
在支持带符号零的平台上,copysign(1.0, -0.0) 返回 -1.0.
>>> math.copysign(-2.0, 1)
2.0
math.fsum(iterable)
返回迭代中的精确浮点值。通过跟踪多个中间部分和来避免精度损失
>>> x = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
>>> sum(x)
0.9999999999999999
>>> math.fsum(x)
1.0
random --- 生成伪随机数
该模块实现了各种分布的伪随机数生成器
random.random()
返回 [0.0, 1.0) 范围内的下一个随机浮点数
>>> random.random()
0.07695673120939395
random.randrange(stop)
random.randrange(start, stop[, step])
从 range(start, stop, step) 返回一个随机选择的元素。
这相当于 choice(range(start, stop, step)) ,但实际上并没有构建一个 range 对象
# 就只能在1,3这两个元素中选择了
>>> random.randrange(1, 5, 2)
3
[a, b]区间选择随机数
random.randint(a, b)
返回随机整数 N 满足 a <= N <= b。相当于 randrange(a, b+1)
random.uniform(a, b)
返回一个随机浮点数 N ,当 a <= b 时 a <= N <= b ,当 b < a 时 b <= N <= a 。
取决于等式 a + (b-a) * random() 中的浮点舍入,终点 b 可以包括或不包括在该范围内
random.choice(seq)
从非空序列 seq 返回一个随机元素。 如果 seq 为空,则引发 IndexError
>>> x
[10, 7, 5, 8, 8]
>>> random.choice(x)
8
>>> random.choice(x)
7
andom.sample(population, k)
返回从总体序列或集合中选择的唯一元素的 k 长度列表。 用于无重复的随机抽样。
返回包含来自总体的元素的新列表,同时保持原始总体不变。
结果列表按选择顺序排列,因此所有子切片也将是有效的随机样本。 这允许抽奖获奖者(样本)被划分为大奖和第二名获胜者(子切片)。
总体成员不必是 hashable 或 unique 。 如果总体包含重复,则每次出现都是样本中可能的选择。
要从一系列整数中选择样本,请使用 range() 对象作为参数。 对于从大量人群中采样,这种方法特别快速且节省空间:sample(range(10000000), k=60) 。
如果样本大小大于总体大小,则引发 ValueError
>>> x = list(range(100))
>>> random.sample(x, 10)
[26, 42, 78, 12, 91, 11, 14, 85, 92, 47]
random.shuffle(x[, random])
将序列 x 随机打乱位置。
可选参数 random 是一个0参数函数,
在 [0.0, 1.0) 中返回随机浮点数;默认情况下,这是函数 random() 。
要改变一个不可变的序列并返回一个新的打乱列表,请使用``sample(x, k=len(x))``。
请注意,即使对于小的 len(x),x 的排列总数也可以快速增长,大于大多数随机数生成器的周期。
这意味着长序列的大多数排列永远不会产生。 例如,长度为2080的序列是可以在 Mersenne Twister 随机数生成器的周期内拟合的最大序列
>>> x = list(range(6))
>>> random.shuffle(x)
>>> x
[3, 0, 1, 4, 2, 5]
math random模块的更多相关文章
- Python学习笔记:math模块(数学),random模块(随机数)
math模块 math模块用于数学意义上的一些计算,常用的方法有: math.pi:PI的值(3.141592653589793). math.floor(x):返回一个小于等于x的最大整数(浮点类型 ...
- Python 基础之模块之math random time
一:math 数学模块import math#(1)ceil() 向上取整操作 (对比内置round)res = math.ceil(6.001) #注意精度损耗print(res)#(2)floo ...
- python数学math和random模块
math模块 关注公众号"轻松学编程"了解更多. 在使用math模块时要先导入 # 导入模块 import math 1.math.ceil(num) 对num进行向上取整 num ...
- Python 内置函数math,random
内置函数的一些操作 - math(数学模块) - random(随机模块) - 使用内置函数时注意需要导入 math - (ceil)向上取整,返回取整数 # 向上取整,返回向上取整的数 import ...
- 转译符,re模块,random模块
一, 转译符 1.python 中的转译符 正则表达式中的内容在Python中就是字符串 ' \n ' : \ 转移符赋予了这个n一个特殊意义,表示一个换行符 ' \ \ n' : \ \ 表示取 ...
- Chrome V8引擎系列随笔 (1):Math.Random()函数概览
先让大家来看一幅图,这幅图是V8引擎4.7版本和4.9版本Math.Random()函数的值的分布图,我可以这么理解 .从下图中,也许你会认为这是个二维码?其实这幅图告诉我们一个道理,第二张图的点的分 ...
- Math.random()
Math.random() 日期时间函数(需要用变量调用):var b = new Date(); //获取当前时间b.getTime() //获取时间戳b.getFullYear() //获取年份b ...
- getpass模块和random模块
getpass模块 用于对密码的隐藏输入案例: import getpass passwd = getpass.getpass("please input your password&quo ...
- 如何在一个页面后面随机跳转到多个链接地址Math.floor()和Math.random()
点击一个标签随机跳转到多个链接地址,主要运用javascript中的Math.floor()和Math.random()方法 floor(x) 方法是向下去整数 参数为任意数值或表达式. floor( ...
随机推荐
- 微信小程序:post请求参数放在请求体中还是拼接到URL中需要看后台是如何接收的
前端发送post请求时,请求参数可以放在请求中,代码如下: function post(url, data, callback) { wx.request({ method: 'POST', url: ...
- Django框架的forms组件与一些补充
目录 一.多对多的三种创建方式 1. 全自动 2. 纯手撸(了解) 3. 半自动(强烈推荐) 二.forms组件 1. 如何使用forms组件 2. 使用forms组件校验数据 3. 使用forms组 ...
- Svelte v2 已经过时了!
带你走马观花,细看新版变化. 注意:原文发表于2018-04-18,随着框架不断演进,部分内容可能已不适用. 大约是一年之前,我们首次在 Svelte 的 issue 跟踪器上讨论过 v2 版本,现在 ...
- Android7.0无需FileProvide搞定URI拍照、应用安装问题
根据官方文档,从Android7.0版本开始 使用URI打开或安装文件需要单独在应用里配置了,问了度娘,有好多版本的结果,个人认为最靠谱的就是下边这个方法,只需在application的oncreat ...
- 破解 Android 上 airpods 连接软件的pro版
0x00 起因 起因是在Android上用了一段时间的AndPods觉得不太好用之后,换到了另一个Play商店推荐的App.动画.连接和电量提示都用的很满意,就是每次连接的弹窗和APP里面都有广告,就 ...
- 剑指 Offer 58 - I. 翻转单词顺序 + 双指针
剑指 Offer 58 - I. 翻转单词顺序 Offer_58_1 题目描述 方法一:使用Split函数 package com.walegarrett.offer; /** * @Author W ...
- docker swarm模式跨主机连接
一.前言 当我们开发好微服务之后,考虑到灵活快速持续部署的需要,通常会考虑将其Docker镜像化并在Docker环境下运行.由于微服务个数通常会较多,把所有微服务部署在一台docker主机上是不现实的 ...
- threejs 基础概要
threejs 基础概要 点击查看官方文档 下面是翻译的内容(稍作修改) 先了解一下Three.js应用程序的结构.Three.js应用程序需要创建一堆对象并将它们连接在一起.下图表示一个小three ...
- MySQL入门(5)——运算符
MySQL入门(5)--运算符 算术运算符 MySQL支持的算数运算符包括加.减.乘.除.求余. 符号 作用 + 加法运算 - 减法运算 * 乘法运算 / 除法运算 % 求余运算 DIV 除法运算,返 ...
- vue-cli3.0 开发环境构建
vue-cli3.0官网 1.node版本 node版本要求node>=8.9以上(推荐 8.11.0+)使用以下命令查看node版本 node -v 如果不是最新的请到node下载下载最新版本 ...