[Algo] 뤼카의 정리

Park Yeongseo·2023년 4월 6일
0

Algorithm

목록 보기
3/17
post-thumbnail

[1] 뤼카 정리

뤼카 정리는 어떤 조합 (NK)\binom{N}{K}를 소수 pp로 나눈 나머지를 구하고자 할 때 사용할 수 있다. 그 정리는 다음과 같다.

자연수 NN, 음이 아닌 정수 KK, 소수 pp가 주어졌을 때,

(NK)i=0K(mini)(modp)\binom{N}{K} \equiv\prod_{i=0}^{K}{\binom{m_i}{n_i}}\pmod{p}

여기서 mim_inin_i는 각각 NNKKpp진법으로 전개해 나타냈을 때의 각 자리의 수들이다.
즉 다음과 같다.

N=mkpk+mk1pk1+...+m2p2+m1p1+m0p0K=nkpk+nk1pk1+...+n2p2+n1p1+n0p0N = m_kp^k + m_{k-1}p^{k-1} + ... + m_2p^2 + m_1p^1+ m_0p^0\\ K = n_kp^k + n_{k-1}p^{k-1} + ... + n_2p^2 + n_1p^1+ n_0p^0

뤼카의 정리를 증명하기 전에 우선 다음의 항등식을 떠올려보자.

(x+1)n=(nn)xn+(nn1)xn1+...+(n2)x2+(n1)x+(n0)(x+1)^n = \binom{n}{n}x^n + \binom{n}{n-1}x^{n-1} + ... + \binom{n}{2}x^2 + \binom{n}{1}x + \binom{n}{0}

이 항등식의 nnpr(pp^r(p는 소수, rr은 음이 아닌 정수))을 대입한다면 다음처럼 될 것이다.

(x+1)pr=(prpr)xpr+(prpr1)xpr1+...+(pr2)x2+(pr1)x+(pr0)(x+1)^{p^r} = \binom{p^r}{p^r}x^{p^r} + \binom{p^r}{p^r-1}x^{p^r-1} + ... + \binom{p^r}{2}x^2 + \binom{p^r}{1}x + \binom{p^r}{0}

그런데 위 항등식에서 볼 수 있는 것은

(prpr1),(prpr2),...,(pr2),(pr1)\binom{p^r}{p^r-1}, \binom{p^r}{p^r-2}, ..., \binom{p^r}{2}, \binom{p^r}{1}

가 모두 pp의 배수라는 것이다. 따라서 다음과 같이 표기할 수 있다.

p(prpr1)xpr1+...+(pr2)x2+(pr1)x    p(x+1)pr((prpr)xpr+(pr0))p \mid \binom{p^r}{p^r-1}x^{p^r-1} + ... + \binom{p^r}{2}x^2 + \binom{p^r}{1}x\\ \iff p \mid (x+1)^{p^r} - (\binom{p^r}{p^r}x^{p^r} + \binom{p^r}{0})\\

당연히 (prpr)=(pr0)=1\binom{p^r}{p^r} = \binom{p^r}{0} = 1이므로 위는 다음과 같이 정리된다.

(x+1)prxpr+1(modp)(x+1)^{p^r} \equiv x^{p^r} + 1 \pmod p

다시 말해 (x+1)pr(x+1)^{p^r}pp로 나눈 나머지는 xpr+1x^{p^r} + 1pp로 나눈 나머지와 같다는 것이다.


여기에서 다음의 정리

ab(modp)anbn(modp)a \equiv b \pmod p \Rightarrow a^n \equiv b^n \pmod p

를 사용하면, 우리는 여기에서 (x+1)prxpr+1(modp)(x+1)^{p^r} \equiv x^{p^r} + 1 \pmod p임을 알고 있으므로,

(x+1)pixpi+1(modp)((x+1)pi)mi(xpi+1)mi(modp)(x+1)^{p^i} \equiv x^{p^i} + 1 \pmod p \\ \Rightarrow ((x+1)^{p^i})^{m_i} \equiv (x^{p^i} + 1)^{m_i} \pmod p

임을 알 수 있고, 곱에 대한 나머지 정리

ab(modp),cd(modp)acbd(modp)a \equiv b \pmod p ,c \equiv d \pmod p \Rightarrow ac \equiv bd \pmod p

를 이용하면

i=0k((x+1)pi)mii=0k(xpi+1)mi(modp)\prod_{i=0}^{k}((x+1)^{p^i})^{m^i} \equiv \prod_{i=0}^{k}(x^{p^i} +1)^{m_i}\pmod p

임도 알 수 있다.

(xpi+1)mi(x^{p^i} +1)^{m_i}에 다시 이항정리를 사용하면

(xpi+1)mi=(mimi)xpimi+(mimi1)xpi(mi1)+...+(mi1)xpi+(mi0)(x^{p^i} +1)^{m_i} = \binom{m_i}{m_i}x^{p^im^i} + \binom{m_i}{m_i-1}x^{p^i(m_i-1)}+...+\binom{m_i}{1}x^{p^i} + \binom{m_i}{0}

를 얻을 수 있다.

i=0k(xpi+1)mi=i=0kni=0mi(mini)xnipi\prod_{i=0}^{k}(x^{p^i} +1)^{m_i} = \prod_{i=0}^{k}\sum_{n_i = 0}^{m_i}\binom{m_i}{n_i}x^{n_ip^i}

이다.
합의 곱은 곱의 합과 같으므로

iAi×jBj=iAjBi×j\sum_{i\in A}i \times \sum_{j\in B} j = \sum_{i \in A j \in B}i\times j

앞의 곱 또한 다음과 같이 합으로 나타낼 수 있다.

i=0kni=0mi(mini)xnipi=n=0Ni=0k(mini)xnipi\prod_{i=0}^{k}\sum_{n_i = 0}^{m_i}\binom{m_i}{n_i}x^{n_ip^i} = \sum_{n=0}^N\prod_{i=0}^k\binom{m_i}{n_ i}x^{n_ip^i}

따라서 다음처럼 정리 된다.

(1+x)N(1+x)mkpk+mk1pk1+...+m2p2+m1p1+m0p0i=0k((x+1)pi)mii=0k(xpi+1)min=0Ni=0k(mini)xnipi(modp)(1+x)^N \equiv (1+x)^{m_kp^k + m_{k-1}p^{k-1} + ... + m_2p^2 + m_1p^1+ m_0p^0}\\ \equiv \prod_{i=0}^{k}((x+1)^{p^i})^{m^i} \equiv \prod_{i=0}^{k}(x^{p^i} +1)^{m_i}\equiv \sum_{n=0}^N\prod_{i=0}^k\binom{m_i}{n_i}x^{n_ip^i} \pmod p
(1+x)N=n=0N(Nn)xnn=0Ni=0k(mini)xn(modp)(1+x)^N = \sum_{n=0}^N\binom{N}{n}x^{n} \equiv \sum_{n=0}^N\prod_{i=0}^k\binom{m_i}{n_i}x^{n} \pmod p

xnx^n의 계수 또한 pp에 대해 합동이므로 임의의 KK에 대해서도 다음이 성립한다.

(NK)i=0K(mini)(modp)\binom{N}{K} \equiv \prod_{i=0}^K\binom{m_i}{n_i} \pmod p

여기서 각 mi,nim_i, n_iN,KN,Kpp진법으로 나타냈을 때의 자리의 수임을 활용하면 증명 완료.\square

0개의 댓글