math --- 數學函式


此模組提供對常見數學函式與常數的存取,包括於 C 標準中定義的那些。

這些函式不支援複數;若你需要計算複數,請使用 cmath 模組的同名函式。這是因為大多數的使用者並不想學習那麼多理解複數所需的數學概念,所以根據支援複數與否分為兩種函式。收到一個例外而非複數回傳值,有助於程式設計師提早察覺參數中包含非預期的複數,進而從源頭查出導致此情況的原因。

此模組提供下列函式。除非特意註明,否則回傳值皆為浮點數。

數論函式

comb(n, k)

n 個物品中不重複且不考慮排序地取出 k 個物品的方法數。

factorial(n)

n 的階乘

gcd(*integers)

整數引數的最大公因數

isqrt(n)

非負整數 n 的整數平方根

lcm(*integers)

整數引數的最小公倍數

perm(n, k)

n 個物品中不重複但考慮排序地取出 k 個物品的方法數。

浮點數算術運算

ceil(x)

x 的上取整值,即大於或等於 x 的最小整數

fabs(x)

x 的絕對值。

floor(x)

x 的下取整值,即小於或等於 x 的最大整數

fma(x, y, z)

融合乘加運算:(x * y) + z

fmod(x, y)

除法 x / y 的餘數

modf(x)

x 的小數部分與整數部分

remainder(x, y)

x 相對於 y 的餘數

trunc(x)

x 的整數部分

浮點數操作函式

copysign(x, y)

帶有 y 的正負號的 x 的量值(絕對值)

frexp(x)

x 的尾數與指數

isclose(a, b, rel_tol, abs_tol)

檢查 ab 兩值是否足夠接近

isfinite(x)

檢查 x 是否既非無限值也非 NaN

isinf(x)

檢查 x 是否為正無限或負無限

isnan(x)

檢查 x 是否為 NaN(非數值)

ldexp(x, i)

x * (2**i)frexp() 的反函式

nextafter(x, y, steps)

xy 移動 steps 步的浮點數值

ulp(x)

x 的最低有效位元的值

次方、指數與對數函式

cbrt(x)

x 的立方根

exp(x)

ex 次方

exp2(x)

2x 次方

expm1(x)

ex 次方減 1

log(x, base)

x 以給定底數(預設為 e)的對數

log1p(x)

1+x 的自然對數(以 e 為底)

log2(x)

x 的以 2 為底的對數

log10(x)

x 的以 10 為底的對數

pow(x, y)

xy 次方

sqrt(x)

x 的平方根

總和與乘積函式

dist(p, q)

兩點 pq 之間的歐幾里得距離,各點以座標的可疊代物件表示

fsum(iterable)

輸入 iterable 中所有值的總和

hypot(*coordinates)

座標可疊代物件的歐幾里得範數

prod(iterable, start)

輸入 iterable 中所有元素與 start 起始值的乘積

sumprod(p, q)

兩個可疊代物件 pq 各元素乘積的總和

角度轉換

degrees(x)

將角度 x 從弧度轉換為度

radians(x)

將角度 x 從度轉換為弧度

三角函式

acos(x)

x 的反餘弦

asin(x)

x 的反正弦

atan(x)

x 的反正切

atan2(y, x)