美文网首页
数学函数 math

数学函数 math

作者: 呦丶耍脾气 | 来源:发表于2022-08-30 14:58 被阅读0次
    函数名 函数内容
    math.ceil(x) 向上取整,返回 x 的上限,即大于或者等于 x 的最小整数
    math.floor(x) 返回 x 的向下取整,小于或等于 x 的最大整数,返回整数
    math.comb(n, k) 返回不重复且无顺序地从 n 项中选择 k 项的方式总数,等同于C(n,k),n! / (k! * (n - k)!),n, k均为正整数
    math.perm(n, k) 返回不重复且有顺序地从 n 项中选择 k 项的方式总数,等同于A(n,k),n! / (n-k)!
    math.copysign(x, y) 返回一个基于 x 的绝对值和 y 的符号的浮点数,math.copysign(3, -0.1) = -3.0
    math.fabs(x) 返回 x 的绝对值的浮点数,abs函数返回浮点或者整数
    math.factorial(x) 以一个整数返回 x 的阶乘
    math.fmod(x, y) 对浮点数求模,即求x除以y后的余数,结果为浮点型,与%区别见下
    math.fsum(x) 返回迭代中的精确浮点值。通过跟踪多个中间部分和来避免精度损失,sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 0.9999999999999999,math.sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 1
    math.modf(x) 返回 x 的小数和整数部分,以数组的形式储存
    math.sqrt(x) 返回 x 的平方根
    math.isqrt(n) 返回非负整数 n 的整数平方根
    math.prod(iterable, *, start=1) 计算输入的 iterable 中所有元素的积, 积的默认 start 值为 1math.prod([5,10,11],start=2) 1100
    math.pow(x, y) 返回 x 的 y 次幂
    math.exp(x) 返回 e 次 x 幂
    math.expm1(x) 返回 e 的 x 次幂,减1
    math.log(x[, base]) 使用一个参数,返回 x 的自然对数(底为 e ) ,使用两个参数,返回给定的 base 的对数 x ,计算为 log(x)/log(base)
    math.log1p(x) 返回 1+x (以e为底) 的自然对数,结果为浮点型
    math.log2(x) 返回 x 以2为底的对数,这通常比 log(x, 2) 更准确,结果为浮点型
    math.log10(x) 返回 x 底为10的对数。这通常比 log(x, 10) 更准确,结果为浮点型
    math.gcd(a, b) 返回整数 a 和 b 的最大公约数
    math.lcm(a, b) 返回整数 a 和 b 的最小公倍数
    math.isfinite(x) 如果 x 既不是无穷大也不是NaN,则返回 True ,否则返回 False
    math.isinf(x) 如果 x 是正或负无穷大,则返回 True ,否则返回 False
    math.isnan(x) 如果 x 是 NaN(不是数字),则返回 True ,否则返回 False
    math.sin(x) 返回 x 弧度的正弦值 sin30°(1度=π/180)
    math.tan(x) 返回 x 弧度的正切值tan30°(1度=π/180)
    math.cos(x) 返回 x 弧度的余弦值cos30°(1度=π/180)
    math.acos(x) 以弧度为单位返回 x 的反余弦值, 结果范围在 0 到 pi 之间。(1度=π/180)
    math.asin(x) 以弧度为单位返回 x 的反正弦值, 结果范围在 -pi/2 到 pi/2 之间(1度=π/180)
    math.atan(x) 以弧度为单位返回 x 的反正切值,结果范围在 -pi/2 到 pi/2 之间
    math.atan2(y, x) 以弧度为单位返回 atan(y / x),结果范围在 -pi/2 到 pi/2 之间
    math.dist(p, q) 返回 p 与 q 两点之间的欧几里得距离,以一个坐标序列(或可迭代对象)的形式给出。 两个点必须具有相同的维度
    math.degrees(x) 将角度 x 从弧度转换为度数
    math.radians(x) 将角度 x 从度数转换为弧度
    math.acosh(x) 返回 x 的反双曲余弦值
    math.asinh(x) 返回 x 的反双曲正弦值
    math.atanh(x) 返回 x 的反双曲正切值
    math.cosh(x) 返回 x 的双曲余弦值
    math.sinh(x) 返回 x 的双曲正弦值
    math.tanh(x) 返回 x 的双曲正切值
    math.gamma(x) 返回 x 处的 伽马函数 值。
    math.lgamma(x) 返回Gamma函数在 x 绝对值的自然对数。
    函数名 函数内容
    math.pi 数学常数 π = 3.141592...,精确到可用精度。
    math.e 数学常数 e = 2.718281...,精确到可用精度
    math.tau 数学常数 τ = 6.283185...,精确到可用精度。Tau 是一个圆周常数,等于 2π,圆的周长与半径之比
    math.inf 浮点正无穷大
    math.nan 一个浮点的 "非数字"(NaN)值,相当于 float('nan') 的输出

    math.fmod函数与“%”求模运算符(如:x % y)的区别

    如下:
    前者始终返回浮点数;后者在x、y均为整型时,返回整型,其他情况下,即x、y任有一浮点型时,结果均返回浮点型。
    前者返回结果的符号(正负)始终与x相同;后者所得结果的符号(正负)始终与y相同。
    前者返回结果的绝对值始终等于“|x| % |y|”;对于后者,若x与y符号(正负)相同,结果的绝对值为“|x| % |y|”,若x与y的符号(正负)不同,结果的绝对值为“|y| - (|x| % |y|)”

    math.fmod( 15,  4),  15 %  4 = 3.0 3
    math.fmod(-15,  4), -15 %  4 = -3.0 1
    math.fmod( 15, -4),  15 % -4 = 3.0 -1
    math.fmod(-15, -4), -15 % -4 = -3.0 -3
    

    需要注意的是:当采用“%”求模运算符,且出现上述“|y| - (|x| % |y|)”这种情况时(即x与y的符号不同),若同时还符合下面两个条件:
    |x|远小于|y|;
    x与y中至少有一个是浮点数(只有浮点数才会导致精度损失)。
    此时,导致(|x| % |y|)的值相对非常小(即等于|x|),而因为|y|相对又非常的大,加上计算机对浮点数计算精度的损失,会出现“|y| - (|x| % |y|)”的最终结果被截取成为“|y|”的奇怪现象,如下所示。

    “%”求模运算符的异常情况:     -0.0000000001 % 10000000 = 10000000.0 (相当于结果直接等于第2个数了)
    采用fmod求模,正常:math.fmod(-0.0000000001, 10000000) =  -1e-10 (结果等于第1个数)
    “%”求模运算符的异常情况: 10   % -10000000000000000000000.0 = -1e+22 (相当于结果直接等于第2个数了)
    “%”求模运算符的异常情况:-10.0 %  10000000000000000000000   = 1e+22 (相当于结果直接等于第2个数了)
    “%”求模运算符,正常:    10    % -10000000000000000000000   = -9999999999999999999990
    “%”求模运算符,正常: , -10    %  10000000000000000000000   = 9999999999999999999990
    

    相关文章

      网友评论

          本文标题:数学函数 math

          本文链接:https://www.haomeiwen.com/subject/yfelnrtx.html