뤼카의 정리(Lucas' theorem)

뤼카의 정리는 음이 아닌 정수 m,n 소수 p에 대해 (mn)modp를 쉽게 구할 수 있게 해주는 정리다.

공식

음이 아닌 정수 m,n 소수 p에 대해 뤼카의 정리는 다음과 같다.

(mn)i=0k(mini)(modp)

이때 mn은 각각 다음과 같다.

m=mkpk+mk1pk1++m1p+m0

n=nkpk+nk1pk1++n1p+n0

사용

아주 큰 숫자 m,n에 대해 이항 계수 (mn)을 구해야 하나 정확한 값을 알 필요는 없고 적당히 작은 소수 p로 나눈 나머지만 알면 될 때 사용할 수 있다.

증명

step 1.

p가 소수이고 n1np1인 정수일 때, 이항 계수 (pn)은 다음과 같다.

(pn)=p(p1)(pn1)n(n1)1

이 식의 분모는 p로 나누어 떨어지지 않고(np1, p는 소수) 분자는 p로 나누어 떨어진다. 따라서 p(pn)이고 이를 통해 다음 식을 얻을 수 있다.

(1+X)p1+Xp(modp)

위 식의 양 변에 p제곱을 하는 귀납법을 통해 모든 음수가 아닌 i에 대해 다음이 성립한다.

(1+X)pi1+Xpi(modp)

step 2.

결론부터 말하자면 다음을 보일 것이다.

n=0m(mn)Xnn=0m(i=0k(mini))Xn(modp)

음수가 아닌 정수 m과 소수 p가 있다고 하자. 이때 m을 다음과 같이 표현할 수 있다.

m=i=0kmipi(0mip1)

step 1의 결과를 이용하면

n=0m(mn)Xn=(1+X)m=i=0k((1+X)pi)mii=0k(1+Xpi)mi=(1+Xp0)m0(1+Xp1)m1(1+Xpk)mk

위 식에서 어떤 n에 대해 Xn의 계수를 구하고 싶다. 이때 n역시 다음과 같이 표현할 수 있다.

n=i=0knipi(0nip1)

따라서 Xn를 만들기 위해선 각 Xpini번 곱해진 후 전체가 모두 곱해져야 한다.

(1+Xpi)mi에서 Xpini의 계수는 (mini)이므로 Xn의 계수는 i=0k(mini)이다.

그러므로

i=0k(1+Xpi)mi=(1+Xp0)m0(1+Xp1)m1(1+Xpk)mk=n=0m(i=0k(mini))Xn

정리하면 다음 식을 얻는다.

n=0m(mn)Xnn=0m(i=0k(mini))Xn(modp)

임의의 n (1nm)에 대해 양 변의 Xn의 계수가 합동이므로 결론적으로 우리가 원하는 합동식을 얻을 수 있다.

(mn)i=0k(mini)(modp)



출처: 위키백과