math
モジュールは数学的な計算をサポートする機能が豊富で、様々な場面で役立ちます。
以下、いくつかの便利な関数を例に紹介します。
基本的な定数の利用
math
モジュールには、一般的な数学定数が含まれています。
math.pi
円周率(π)math.e
ネイピア数(自然対数の底)
import math
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045
四捨五入と切り捨て・切り上げ
math.ceil(x)
xを切り上げmath.floor(x)
xを切り捨てmath.trunc(x)
小数部分を切り捨てて整数部分を返す
print(math.ceil(3.4)) # 4
print(math.floor(3.4)) # 3
print(math.trunc(3.4)) # 3
累乗・平方根・対数
math.sqrt(x)
xの平方根を求めるmath.pow(x, y)
xのy乗を計算math.log(x, base)
xの対数(任意の底で計算可能、baseを省略すると自然対数)
print(math.sqrt(16)) # 4.0
print(math.pow(2, 3)) # 8.0
print(math.log(10, 10)) # 1.0
print(math.log(math.e)) # 1.0
三角関数と逆三角関数
角度の計算が必要な場合には以下の関数を使用します。
角度はラジアン単位で入力することに注意してください。
math.sin(x)
xの正弦math.cos(x)
xの余弦math.tan(x)
xの正接math.asin(x)
、math.acos(x)
、math.atan(x)
逆三角関数
print(math.sin(math.pi / 2)) # 1.0
print(math.cos(math.pi)) # -1.0
print(math.tan(math.pi / 4)) # 1.0
角度変換
math.radians(deg)
とmath.degrees(rad)
を使用して、度とラジアンの変換ができます。
angle_deg = 90
angle_rad = math.radians(angle_deg)
print(angle_rad) # 1.5707963267948966
angle_rad = math.pi / 2
angle_deg = math.degrees(angle_rad)
print(angle_deg) # 90.0
数学的な条件分岐に便利な関数
math.isclose(a, b, rel_tol=1e-9)
aとbがほぼ等しいかどうかを判定します(浮動小数点の誤差を考慮して近似値として判定)。math.isnan(x)
xがNaN(Not a Number)かどうかを判定します。math.isinf(x)
xが無限大かどうかを判定します。
print(math.isclose(0.1 + 0.2, 0.3)) # True
print(math.isnan(float('nan'))) # True
print(math.isinf(float('inf'))) # True
組み合わせや順列を計算する
math.factorial(x)
xの階乗を計算math.comb(n, k)
n個の中からk個を選ぶ組み合わせの数math.perm(n, k)
n個の中からk個を並べる順列の数
print(math.factorial(5)) # 120
print(math.comb(5, 2)) # 10
print(math.perm(5, 2)) # 2
まとめ
math
モジュールは、数学的な演算のサポートを提供しており、四捨五入や三角関数から、組み合わせや順列まで幅広く利用できます。