파이썬 pow 함수

파이썬 pow 함수는 파이썬의 기본 내장함수로, 숫자의 거듭제곱등에 사용됩니다.
기본적으로 매개변수 2개가 필요하고, pow(a, b)는 $a^{b}$, 즉 $a$의 $b$제곱을 출력합니다.


파이썬의 기본 자료형인 복소수에 대해서도 당연히 연산을 해줍니다. 단, 허수 단위 $i$ 대신 j를 사용하셔야 합니다. wolframalpha에서의 $(3 + 3i)^{4 + 4i}$ 계산 결과


pow(a, b)에서 a, b가 모두 자연수라면 세번째 매겨변수를 사용할 수 있습니다. pow(a, b, c)는 $0$부터 $c - 1$사이의 $a^{b} \pmod{c}$값, 즉 $a$의 $b$제곱을 $c$로 나눈 나머지를 출력합니다.
보통 a, b가 아주 크면 빠른 거듭제곱법 등을 사용해줘야 하지만, 굳이 그러지 않아도 좋습니다.


또, pow(0, 0)은 1이 출력됩니다.


(이하 정수론 지식 약간 필요)

사실, a에는 음의 정수를 넣을 수 있습니다.
그래도 pow(a, b, c)는 멀쩡히 $0$부터 $c - 1$사이의 $a^{b} \pmod{c}$값을 내놓습니다.
$(-2)^{9} \equiv -512 \equiv 488 \pmod{1000}$같은 역할을 해줍니다.


사실 b에도 음의 정수를 넣을 수 있습니다. 특히, -1을 넣을 수 있습니다.
$a^{-1} \pmod{c}$는 아시다시피 법 $c$에서의 $a$의 모듈러 곱셈 역원 입니다.
즉, pow(a, -1, c)는 $a m \equiv 1 \pmod{c}$인 $0 \leq m < c$값을 찾아 출력합니다.
다른 언어에서 이거 구하려면 확장된 유클리드 호제법 등으로 구해야 하지만 파이썬은 무려 그냥 내장함수로 있는 셈입니다.


pow(a, -b, c)는 모듈러 곱셈 역원의 b제곱을 c로 나눈 나머지를 출력합니다. 즉, $a^{-b} \equiv {\left( a^{-1} \right)}^{b} \pmod{c}$ 값 입니다.