ํŒŒ์ด์ฌ์˜ math ๋ชจ๋“ˆ

https://docs.python.org/ko/3.13/library/math.html

import math

## 1. ์ƒ์ˆ˜(constants)
  • math.pi
    ์›์ฃผ์œจ ฯ€ ๊ฐ’์„ ์ œ๊ณต (์•ฝ 3.141592653589793)
  • math.e
    ์ž์—ฐ์ƒ์ˆ˜ e ๊ฐ’์„ ์ œ๊ณต (์•ฝ 2.718281828459045)

์ด๋Ÿฐ ์ƒ์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” math.pi ๋“ฑ์œผ๋กœ ์‚ฌ์šฉ

import math
 
r = 5
circle_area = math.pi * (r**2)
print(circle_area)  # ์›์˜ ๋„“์ด


2. ์ž์ฃผ ์“ฐ๋Š” ํ•จ์ˆ˜๋“ค

(1) ์ œ๊ณฑ๊ทผ๊ณผ ์ง€์ˆ˜, ๋กœ๊ทธ

  • math.sqrt(x)
    x\sqrt{x}xโ€‹ (์ œ๊ณฑ๊ทผ)์„ ๋ฐ˜ํ™˜
  • math.pow(x, y)
    x^y ์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜ (๊ฑฐ๋“ญ์ œ๊ณฑ). โ€ป ํŒŒ์ด์ฌ์—์„œ ๊ฑฐ๋“ญ์ œ๊ณฑ์€ x**y ๋กœ๋„ ๊ฐ€๋Šฅ
  • math.log(x)
    ์ž์—ฐ๋กœ๊ทธ lnโก(x)์„ ๋ฐ˜ํ™˜
  • math.log2(x)
    logโก2(x) (๋ฐ‘์ด 2์ธ ๋กœ๊ทธ)๋ฅผ ๋ฐ˜ํ™˜
  • math.log10(x)
    logโก10(x) (๋ฐ‘์ด 10์ธ ๋กœ๊ทธ)๋ฅผ ๋ฐ˜ํ™˜
import math
 
val = 16
 
sqrt_val = math.sqrt(val)      # sqrt(16) = 4
log_val = math.log(val)        # ln(16) = 2.772588...
log2_val = math.log2(val)      # log2(16) = 4
log10_val = math.log10(val)    # log10(16) = 1.204119...
 


(2) ์˜ฌ๋ฆผ, ๋‚ด๋ฆผ, ๋ฐ˜์˜ฌ๋ฆผ

  • math.floor(x)
    ์‹ค์ˆ˜ x๋ฅผ ๋‚ด๋ฆผ(๋ฒ„๋ฆผ)ํ•œ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ ( โŒŠxโŒ‹ )
  • math.ceil(x)
    ์‹ค์ˆ˜ x๋ฅผ ์˜ฌ๋ฆผ(๋ฐ˜์˜ฌ๋ฆผ์ด ์•„๋‹ˆ๋ผ ๋ฌด์กฐ๊ฑด ์œ„๋กœ)์„ ํ•œ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ ( โŒˆxโŒ‰ )
  • round(x)
    ํŒŒ์ด์ฌ ๋‚ด์žฅ ํ•จ์ˆ˜๋กœ ๋ฐ˜์˜ฌ๋ฆผ์„ ํ•  ๋•Œ ์‚ฌ์šฉ (์†Œ์ˆ˜์  ์ฒซ์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ). math ๋ชจ๋“ˆ์˜ ํ•จ์ˆ˜๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ž์ฃผ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ์— ํ•จ๊ป˜ ์–ธ๊ธ‰
import math
 
num = 3.7
 
print(math.floor(num))  # 3
print(math.ceil(num))   # 4
print(round(num))       # 4
 


(3) ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜, ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜

  • math.gcd(a, b)
    ๋‘ ์ˆ˜ aaa์™€ bbb์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(gcdโก(a,b)\gcd(a, b)gcd(a,b))๋ฅผ ๊ตฌํ•ด ์ •์ˆ˜๋กœ ๋ฐ˜ํ™˜
  • math.lcm(a, b)
    ๋‘ ์ˆ˜ aaa์™€ bbb์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜(lcmโก(a,b)\operatorname{lcm}(a, b)lcm(a,b))๋ฅผ ๊ตฌํ•ด ์ •์ˆ˜๋กœ ๋ฐ˜ํ™˜ (ํŒŒ์ด์ฌ 3.9 ์ด์ƒ์—์„œ ์ง€์›)
import math
 
print(math.gcd(16, 24))  # 8
print(math.lcm(16, 24))  # 48 (Python 3.9+)
 


(4) ํŒฉํ† ๋ฆฌ์–ผ

  • math.factorial(n)
    n!์„ ์ •์ˆ˜๋กœ ๋ฐ˜ํ™˜
import math
 
print(math.factorial(5))  # 120
 
 


(5) ์กฐํ•ฉ(comb)

  • math.comb(n, k)
    ์กฐํ•ฉ (nk)\binom{n}{k}(knโ€‹) ( nnn๊ฐœ ์ค‘์—์„œ kkk๊ฐœ๋ฅผ ์ˆœ์„œ ์—†์ด ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜ ) ์„ ์ •์ˆ˜๋กœ ๋ฐ˜ํ™˜
import math
 
n = 5
k = 2
print(math.comb(n, k))  # 10
 


(6) ๊ธฐํƒ€ ์œ ์šฉํ•œ ํ•จ์ˆ˜๋“ค

  • math.fabs(x)
    ์ ˆ๋Œ“๊ฐ’(๋ถ€๋™์†Œ์ˆ˜์ )์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์žฅํ•จ์ˆ˜ abs()์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ๋ฆฌํ„ด ํƒ€์ž…์ด float์ธ ์ ์ด ํŠน์ง•
  • math.trunc(x)
    x๋ฅผ ์ •์ˆ˜ ๋ถ€๋ถ„๋งŒ ๋‚จ๊ธฐ๊ณ  ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ์ž˜๋ผ๋‚ด์–ด ๋ฐ˜ํ™˜(0 ๋ฐฉํ–ฅ์œผ๋กœ ๋ฒ„๋ฆผ)
  • math.hypot(x, y)
    ์ง๊ฐ์‚ผ๊ฐํ˜•์—์„œ ๋น—๋ณ€์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•จ โ†’ 2์ฐจ์› ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ์—๋„ ์œ ์šฉ
import math
 
print(math.fabs(-3.7))   # 3.7
print(math.trunc(3.7))   # 3
print(math.hypot(3, 4))  # 5.0 (3-4-5 ์‚ผ๊ฐํ˜•)