docs.python.org/3/library/math.html#module-math
1. ์์
2. ์ค์ ์ฒ๋ฆฌ
3. iterable ์ฒ๋ฆฌ
4. ์ ์๋ก
5. ๋ฌดํ๋/NaN
6. ์ผ๊ฐํจ์
7. ์ง์/๋ก๊ทธํจ์
8. ๊ฐ๋ ๋ณํ
9. ํ๋ฅ ๊ณผ ํต๊ณ
math ๋ชจ๋์ ๋ด์ฅํจ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ import๊ฐ ํ์ํ๋ค
import math
1. ์์
print(math.pi) # 3.141592653589793
print(math.e) # 2.718281828459045
print(math.tau) # 6.283185307179586
print(math.inf) # inf
print(math.nan) # nan
2. ์ค์ ์ฒ๋ฆฌ
- math.ceil(x)
: ์ฌ๋ฆผ. x์ ์ฒ์ฅ๊ฐ(ceiling)์ ๋ฐํ
x = 3.14
print(math.ceil(x))
# 4
- math.fabs(x)
: x์ ์ ๋๊ฐ ๋ฐํ. = abs()
y = -2.1
print(math.fabs(y))
# 2.1
print(abs(y))
# 2.1
- math.floor(x)
: ๋ด๋ฆผ. x์ ๋ฐ๋ฅ๊ฐ(floor)์ ๋ฐํ
x = 3.14
print(math.floor(x))
# 3
- math.fmod(x, y)
: x % y ์ ๊ฐ์ ๊ฐ์ ๋ฐํํ์ง๋ง ๋ณดํต x % y ๋ ์ ์, fmod(x, y)๋ float ๊ณ์ฐ ์ ์ฌ์ฉ
x = 3.14
y = -2.1
print(math.fmod(x, y))
# 1.04
- math.modf(x)
: x์ ์์์ ์ ์ ๋ถ๋ถ์ ํํ๋ก ๋ฐํ
x = 3.14
z = math.modf(x)
print(z)
# (0.14000000000000012, 3.0)
3. iterable ์ฒ๋ฆฌ
- math.fsum(iterable)
: sum(iterable)๊ณผ ๊ฐ์ด ์ ๋ฌ๋ iterable์ ๋ชจ๋ ์์์ ํฉ์ ๋ฐํํ์ง๋ง sum()๊ณผ ๋ฌ๋ฆฌ ์ ๋ฐ๋ ์์ค ๋ฐฉ์ง
a = [1, 4, 7, 4, 3, 1.4]
b = (1, 4, 7, 4, 3, 1.4)
print(math.fsum(a))
# 20.4
print(math.fsum(b))
# 20.4
- math.prod(iterable, *, start=1)
: ์ ๋ฌ๋ iterable ์ ๋ชจ๋ ์์์ ๊ณฑ์ ๋ฐํ. ๊ธฐ๋ณธ start๊ฐ์ 1. iterable์ด ๋น์ด์์ผ๋ฉด start๊ฐ์ ๋ฐํ
a = [1, 4, 7, 4, 3, 1.4]
b = (1, 4, 7, 4, 3, 1.4)
print(math.prod(a))
# 470.4
print(math.prod(b, start=2))
# 940.8
4. ์ ์๋ก
- math.gcd(*integers)
: ์ ๋ฌ๋ ์ ์ ์ธ์๋ค์ ์ต๋ ๊ณต์ฝ์ ๋ฐํ. ์ธ์๊ฐ ์ ๋ฌ๋์ง ์์ผ๋ฉด 0 ๋ฐํ
a = 12
b = 24
c = 30
print(math.gcd())
# 0
print(math.gcd(a, b))
# 12
print(math.gcd(a, b, c))
# 6
- math.lcm(*integers)
: ์ ๋ฌ๋ ์ ์ ์ธ์๋ค์ ์ต์ ๊ณต๋ฐฐ์ ๋ฐํ. ์ธ์๊ฐ ์ ๋ฌ๋์ง ์์ผ๋ฉด 1 ๋ฐํ
a = 2
b = 3
c = 7
print(math.lcm())
# 1
print(math.lcm(a, b))
# 6
print(math.lcm(a, b, c))
# 42
5. ๋ฌดํ๋/NaN
- math.isfinite(x)
: x๊ฐ ๋ฌดํ๋๋ NaN์ด ์๋๋ฉด True, ๋ง์ผ๋ฉด False ๋ฐํ.
- math.isinf(x)
: x๊ฐ ์ ๋๋ ์์ ๋ฌดํ๋์ด๋ฉด True, ์๋๋ฉด False ๋ฐํ
- math.isnan(x)
: x๊ฐ NaN์ด๋ฉด True, ์๋๋ฉด False ๋ฐํ
6. ์ผ๊ฐํจ์
- math.acos(x)
: x ๋ผ๋์์ ์ํฌ ์ฝ์ฌ์ธ(arc cosine) ๋ฐํ
- math.asin(x)
: x ๋ผ๋์์ ์ํฌ ์ฌ์ธ(arc sine) ๋ฐํ
- math.atan(x)
: x ๋ผ๋์์ ์ํฌ ํ์ ํธ(arc tangent) ๋ฐํ
- math.cos(x)
: x ๋ผ๋์์ ์ฝ์ฌ์ธ(cosine) ๋ฐํ
- math.sin(x)
: x ๋ผ๋์์ ์ฌ์ธ(sine) ๋ฐํ
- math.sin(x)
: x ๋ผ๋์์ ํ์ ํธ(tangent) ๋ฐํ
7. ์ง์/๋ก๊ทธํจ์
- math.exp(x)
: e์ x ๊ฑฐ๋ญ์ ๊ณฑ ๋ฐํ. ์ผ๋ฐ์ ์ผ๋ก math.e ** x ๋ pow(math.e, x) ๋ณด๋ค ์ ํํ๋ค
a = 2
print(math.exp(a))
# 7.38905609893065
- math.isqrt(x)
: ์์ด ์๋ ์ ์ x์ ์ ์ ์ ๊ณฑ๊ทผ ๋ฐํ. x์ ์ ํํ ์ ๊ณฑ๊ทผ์ ๋ฒ๋ฆผ๊ฐ
a = 15
print(math.isqrt(a))
# 3
- math.log(x[, base])
: ์ธ์๊ฐ ํ๋ ์ ๋ฌ๋๋ฉด x์ ์์ฐ๋ก๊ทธ ๋ฐํ(๋ฐ e). ์ธ์๊ฐ ๋๊ฐ ์ ๋ฌ๋๋ฉด ๋ฐ์ด base์ธ x์ ๋ก๊ทธ ๋ฐํ( log(x) / log(base) )
- math.log2(x)
: x์ ๋ฐ์ด 2์ธ ๋ก๊ทธ ๋ฐํ. ์ผ๋ฐ์ ์ผ๋ก log(x, 2)๋ณด๋ค ์ ํํ๋ค
- math.log10(x)
: x์ ๋ฐ์ด 10์ธ ๋ก๊ทธ ๋ฐํ. ์ผ๋ฐ์ ์ผ๋ก log(x, 10)๋ณด๋ค ์ ํํ๋ค
- math.pow(x, y)
: x์ y ์ ๊ณฑ ๋ฐํ. x ** y ์ ๋ฌ๋ฆฌ ๋ ์ธ์๋ฅผ ๋ชจ๋ floatํ์ผ๋ก ๋ณํ
a = 2
b = 3
print(math.pow(a, b))
# 8.0
- math.sqrt(x)
: x์ ์ ๊ณฑ๊ทผ ๋ฐํ
a = 15
print(math.sqrt(a))
# 3.872983346207417
8. ๊ฐ๋ ๋ณํ
- math.degrees(x)
: ๊ฐ๋ x๋ฅผ ๋ผ๋์(radian)์์ ๋(degree)๋ก ๋ณํ
- math.radians(x)
: ๊ฐ๋ x๋ฅผ ๋(degree)์์ ๋ผ๋์(radian)์ผ๋ก ๋ณํ
9. ํ๋ฅ ๊ณผ ํต๊ณ
- math.comb(n, k)
: ๋ฐ๋ณต๊ณผ ์์ ์์ด n๊ฐ ์ค k๊ฐ๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ์ ์ ๋ฐํ. ์กฐํฉ nCr : n! / (k! * (n - k)!)
- math.factorial(x)
: x! ๋ฐํ. x์ ํฉํ ๋ฆฌ์ผ ๋ฐํ
- math.perm(n, k=None)
: ๋ฐ๋ณต ์๊ณ ์์ ์๊ฒ n๊ฐ ์ค k๊ฐ๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ์ ์ ๋ฐํ. ์์ด nPr : n! / (n - k)!