python:math --- 数学函数


该模块提供了对C标准定义的数学函数的访问。

这些函数不适用于复数;如果你需要计算复数,请使用 cmath 模块中的同名函数。将支持计算复数的函数区分开的目的,来自于大多数开发者并不愿意像数学家一样需要学习复数的概念。得到一个异常而不是一个复数结果使得开发者能够更早地监测到传递给这些函数的参数中包含复数,进而调查其产生的原因。

该模块提供了以下函数。除非另有明确说明,否则所有返回值均为浮点数。

数论与表示函数

math.ceil(x)
返回 x 的向上取整,即大于或等于 x 的最小的整数。如果 x 不是浮点数,委托给 x.ceil ,它应该返回一个 Integral 的值。

math.comb(n, k)
返回不重复且无顺序地从 n 项中选择 k 项的方式总数。

当 k <= n 时取值为 n! / (k! * (n - k)!);当 k > n 时取值为零。

Also called the binomial coefficient because it is equivalent to the coefficient of k-th term in polynomial expansion of (1 + x)ⁿ.

如果任一参数不为整数则会引发 TypeError。 如果任一参数为负数则会引发 ValueError。

3.8 新版功能.

math.copysign(x, y)
返回一个基于 x 的绝对值和 y 的符号的浮点数。在支持带符号零的平台上,copysign(1.0, -0.0) 返回 -1.0.

math.fabs(x)
返回 x 的绝对值。

math.factorial(n)
Return n factorial as an integer. Raises ValueError if n is not integral or is negative.

3.9 版后已移除: 接受具有整数值的浮点数 (例如 5.0) 的行为已被弃用。

math.floor(x)
返回 x 的向下取整,小于或等于 x 的最大整数。如果 x 不是浮点数,则委托给 x.floor ,它应返回一个 Integral 值。

math.fmod(x, y)
返回 fmod(x, y) ,由平台C库定义。请注意,Python表达式 x % y 可能不会返回相同的结果。C标准的目的是 fmod(x, y) 完全(数学上;到无限精度)等于 x - n*y 对于某个整数 n ,使得结果具有 与 x 相同的符号和小于 abs(y) 的幅度。Python的 x % y 返回带有 y 符号的结果,并且可能不能完全计算浮点参数。 例如, fmod(-1e-100, 1e100) 是 -1e-100 ,但Python的 -1e-100 % 1e100 的结果是 1e100-1e-100 ,它不能完全表示为浮点数,并且取整为令人惊讶的 1e100 。 出于这个原因,函数 fmod() 在使用浮点数时通常是首选,而Python的 x % y 在使用整数时是首选。

math.frexp(x)
以 (m, e) 对的形式返回 x 的尾数和指数。 m 是一个浮点数, e 是一个整数,正好是 x == m * 2**e 。 如果 x 为零,则返回 (0.0, 0) ,否则返回 0.5 <= abs(m) < 1 。这用于以可移植方式“分离”浮点数的内部表示。

math.fsum(iterable)
返回迭代中的精确浮点值。通过跟踪多个中间部分和来避免精度损失:

>>>
sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
0.9999999999999999
fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
1.0

该算法的准确性取决于IEEE-754算术保证和舍入模式为半偶的典型情况。在某些非Windows版本中,底层C库使用扩展精度添加,并且有时可能会使中间和加倍,导致它在最低有效位中关闭。

有关待进一步讨论和两种替代方法,参见 ASPN cookbook recipes for accurate floating point summation。

math.gcd(*integers)<

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FuncPlotCalc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值