Module math cung cấp các hằng số toán học và hàm đặc biệt cho tính toán khoa học.
Hằng số quan trọng
| Hằng số | Giá trị xấp xỉ | Ý nghĩa |
| math.pi | 3.141592653589793 | Số π |
| math.e | 2.718281828459045 | Số e (cơ số ln) |
| math.tau | 6.283185307179586 | 2π (tau = 2π) |
| math.inf | float('inf') | Vô cực dương |
| math.nan | float('nan') | Not a Number |
Hàm đặc biệt
| Hàm | Mô tả |
| math.gamma(x) | Hàm Gamma: Γ(n) = (n-1)! cho nguyên dương |
| math.isinf(x) | Kiểm tra x có phải vô cực (±inf) |
| math.isnan(x) | Kiểm tra x có phải NaN |
| math.isfinite(x) | Kiểm tra x có hữu hạn (không inf, không nan) |
| math.erf(x) | Hàm sai số (error function) - thống kê, xác suất |
| math.erfc(x) | 1 - erf(x) |
Ví dụ minh họa
import math
# Gamma function
print("Gamma(10) =", math.gamma(10)) # 362880.0 = 9!
# Kiểm tra giá trị đặc biệt
print("isnan(nan):", math.isnan(math.nan)) # True
print("isinf(inf):", math.isinf(math.inf)) # True
print("isfinite(inf):", math.isfinite(math.inf)) # False
# Error function
print("erf(1):", math.erf(1)) # 0.8427007929497149
Ứng dụng thực tế
Phân phối chuẩn (Normal distribution) - dùng erf
import math
def normal_cdf(x, mu=0, sigma=1):
"""Cumulative distribution function cho chuẩn hóa"""
return 0.5 * (1 + math.erf((x - mu) / (sigma * math.sqrt(2))))
print(f"P(X ≤ 1) = {normal_cdf(1):.4f}") # ~0.8413
Kiểm tra tính hợp lệ số liệu
def validate_number(x):
if math.isnan(x):
return "NaN - thiếu dữ liệu"
if math.isinf(x):
return "Inf - tràn số/chia cho 0"
if not math.isfinite(x):
return "Không hợp lệ"
return "OK"
print(validate_number(1.5)) # OK
print(validate_number(float('nan'))) # NaN
print(validate_number(float('inf'))) # Inf
Kết luận
Module math cung cấp hằng số (pi, e, tau, inf, nan) và hàm đặc biệt (gamma, erf, isinf, isnan, isfinite) cần thiết cho tính toán khoa học, thống kê, và validation dữ liệu.