파이썬 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}$ 값 입니다.