python内置数学模块math
提供了一些基础的计算功能,下列表达式默认from math import *
,默认输入输出均为一个数字。大部分函数都很直观,望文生义即可。
常见函数 |
|
三角和反三角 |
cos , sin , tan , acos , asin , atan |
|
atan2(x,y) = arctan y x \arctan\frac{y}{x} arctanxy |
双曲和反双曲 |
cosh , sinh , tanh , acosh , asinh , atanh |
幂函数 |
exp , sqrt , expm1(x) = e x − 1 e^x-1 ex−1, pow(x,y) = x y x^y xy |
对数函数 |
log , log10 , log2 , log1p(x) = ln ( 1 + x ) \ln(1+x) ln(1+x) |
|
log(x) = ln x \ln x lnx, log(x,y) = log y x \log_yx logyx |
取整 |
向上ceil , 向下floor ,实值向下取整trunc |
|
isqrt(x) 相当于floor(sqrt(x)) |
角度转换 |
转角度degrees ,转弧度radians |
拆分 |
a,b = modf(x) 即x=a.b,a,b=frexp(x) 即 x = a ⋅ 2 b x=a\cdot2^b x=a⋅2b |
其他函数 |
阶乘factorial ,绝对值fabs ,最小有效比特位的值ulp |
特殊函数 |
|
erf(x) |
误差函数, 2 π ∫ 0 x e − η 2 d η \frac{2}{\sqrt\pi}\int^x_0e^{-\eta^2}\text d\eta π 2∫0xe−η2dη |
erfc(x) |
补误差函数,即1.0-erf(x) |
gamma(x) |
gamma函数, ∫ 0 + ∞ t x − 1 t − t d t ( x > 0 ) \int^{+\infty}_0t^{x-1}t^{-t}\text dt(x>0) ∫0+∞tx−1t−tdt(x>0) |
lgamma(x) |
gamma函数,即log(abs(gamma(x))) |
判断函数 |
True 的条件 |
isfinite(x) |
x为有限的数值 |
isinf(x) |
x为正负无穷大 |
isnan(x) |
x为nan |
常量 |
π \pi π |
e e e |
τ = 2 π \tau=2\pi τ=2π |
inf \inf inf |
nan |
值 |
3.14… |
2.71… |
6.28… |
正无穷 |
非数字 |
代码 |
pi |
e |
tau |
inf |
nan |
输入 |
输入为任意多个数值的函数 |
整数 |
最大公约数gcd ,最小公倍数lcm |
数值 |
精确求和fsum , 欧几里得范数hypot (可理解为均方根) |
|
连乘prod ,可选参数start 表示初始值 |
其他函数
comb(n,k)
= C n k = n ! k ! ( n − k ) ! C^k_n=\frac{n!}{k!(n-k)!} Cnk=k!(n−k)!n!,即二项系数
perm(n,k)
= n ! ( n − k ) ! \frac{n!}{(n-k)!} (n−k)!n!
copysign(a,b)
= ∣ a ∣ ⋅ b ∣ b ∣ |a|\cdot\frac{b}{|b|} ∣a∣⋅∣b∣b
dist(p,q)
= ∑ i ( p i − q i ) 2 \sum_i(p_i-q_i)^2 ∑i(pi−qi)2
ldexp(x, i)
= x ⋅ 2 i x\cdot 2^i x⋅2i
- 求余数:
fmod(x,y)
,remainder(x, y)
nextafter(x, y)
,返回x趋向于y的最接近的浮点数值。
isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
- 若 a 和 b 的值比较接近则返回
True
,否则False
。
- rel_tol 是相对容差,表示a, b之间允许的最大差值。例如,要设置5%的容差,rel_tol=0.05。rel_tol 必须大于0。
- abs_tol 是最小绝对容差,其值不小于0。
- 等价于
abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)