2025.9.24 闲话:Lucas 定理究极证明

小粉兔介绍了一种 Lucas 定理的超级简洁形象的证明,至少是我见过的最简洁的证明。

前置知识:二项式定理。

所用的特殊记号:艾弗森括号、系数提取符 / 系数算子。

Lucas 定理内容:

\[\binom{n}{m} \equiv \binom{\lfloor n \div P \rfloor}{\lfloor m \div P \rfloor} \binom{n \bmod P}{m \bmod P} \pmod{P} \]

其中 \(P\) 是质数。


首先我们需要一个结论:

\[\boxed{ (1 + x)^{P} \equiv 1 + x^{P} \pmod{P} } \]

证明:

通过二项式定理拆分左半边:

\[(1 + x)^{P} = \sum_{i = 0}^{P} \binom{P}{i} x^{i} \]

展开组合数:

\[\binom{P}{i} = \frac{P!}{i! (P - i)!} \]

\((P - i)!\) 除上去:

\[\frac{P!}{i! (P - i)!} = \frac{P (P - 1) \dots (P - i + 1)}{i!} \]

因为 \(P\) 是质数,所以(当 \(i \neq 0\) 时)分子上的 \(P\) 不会被除了 \(1\)\(P\) 以外的正整数整除。

  • 如果 \(i = 0\),此时分母上的 \(P\) 项根本不存在,\(\binom{P}{i} = \binom{P}{0} = 1\)

  • 如果 \(0 < i < P\),那么分母上的乘积必然不会出现 \(P\) 因子,分子的 \(P\) 也不会被消去,此时原式被 \(P\) 整除

  • 如果 \(i = P\),那么 \(\binom{P}{i} = \binom{P}{P} = 1\)

所以:

\[\binom{P}{i} \equiv [(i = 0) \parallel (i = P)] \pmod{P} \]

(此处中括号表示“艾弗森括号”,即中括号内为真时值为 \(1\) 否则为 \(0\)

也就是说:

\[\begin{aligned} \sum_{i = 0}^{P} \binom{P}{i} x^{i} &\equiv \sum_{i = 0}^{P} [(i = 0) \parallel (i = P)] x^{i} \\ &\equiv x^0 + x^P \\ (1 + x)^{P} &\equiv 1 + x^{P} \pmod{P} \end{aligned} \]

证毕。


然后正式开始证明 Lucas 定理。

首先使用二项式定理,把所求组合数转化为二项式系数:

\[\binom{n}{m} = [x^m](1 + x)^{n} \]

(此处中括号表示“系数提取符/系数算子”,即表示 \((1 + x)^n\)\(x^m\) 项的系数)

右侧指数可以通过小学除法知识拆分:

\[\begin{aligned} \binom{n}{m} &= [x^m](1 + x)^{n} \\ &= [x^m](1 + x)^{ (P \times \lfloor \frac{n}{P} \rfloor) + (n \bmod P) } \\ \end{aligned} \]

\(k = \lfloor \frac{n}{P} \rfloor\)\(r = n \bmod P\),然后单独看右边被提取系数的式子:

\[\begin{aligned} (1 + x)^{ kP + r } &= (1 + x)^{ kP + r } \\ &= (1 + x)^{kP} \times (1 + x)^r \\ &= \left( (1 + x)^P \right)^k \times (1 + x)^r \\ &\equiv (1 + x^P)^k \times (1 + x)^r \pmod{P} \end{aligned} \]

(最后一步用了刚才所证明的结论)

我们把右侧需要提取系数的那个式子单独拿出来,用二项式定理展开:

\[\begin{aligned} (1 + x^P)^{k} \times (1 + x)^r &= \left( \sum_{i = 0}^{k} \binom{k}{i} x^{iP} \right) \left( \sum_{i = 0}^{r} \binom{r}{i}x^i \right) \\ &= \sum_{i = 0}^{k} \sum_{j = 0}^{r} \left( \binom{k}{i} x^{iP} \times \binom{r}{j} x^j \right) \\ &= \sum_{i = 0}^{k} \sum_{j = 0}^{r} \left( \binom{k}{i} \binom{r}{j} x^{iP + j} \right) \end{aligned} \]

对于上述第二步的解释

直接使用乘法分配率:

\[\begin{aligned} \left( \sum_{i = 1}^{a} A_i \right) \left( \sum_{j = 1}^{b} B_j \right) &= (A_1 + A_2 + \dots + A_a) (B_1 + B_2 + \dots B_b) \\ &= A_1 (B_1 + B_2 + \dots B_b) + A_2 (B_1 + B_2 + \dots B_b) + \dots + A_a (B_1 + B_2 + \dots + B_b) \\ &= (A_1 B_1 + A_1 B_2 + \dots A_1 B_b) + (A_2 B_1 + A_2 B_2 + \dots A_2 B_b) + \dots + (A_a B_1 + A_a B_2 + \dots + A_a B_b) \\ &= \sum_{i = 1}^{a} \sum_{j = 1}^{b} A_i B_j \end{aligned} \]

即:和的积等于积的和。

回到刚才的问题,我们要求这个式子的 \(x^m\) 项的系数。

上述求和项的指数可以列成表格:

\(i \backslash j\) \(0\) \(1\) \(\cdots\) \(r\)
\(0\) \(0\) \(1\) \(\cdots\) \(r\)
\(1\) \(P\) \(P + 1\) \(\cdots\) \(P + r\)
\(\vdots\) \(\vdots\) \(\vdots\) \(\ddots\) \(\vdots\)
\(k\) \(kP\) \(kP + 1\) \(\cdots\) \(kP +r\)

我们发现,\(j \le r = (n \bmod P) < P\),所以 \(iP + j < (i + 1) P\),因此每一行最右侧的数也要比下一行最左侧的数要小。

又因为每一行内部是递增的,所以如果按照外层枚举行,内层枚举列的顺序,整个表格也是单调递增的。

因此表格内的数字两两不重复。所以,\(m\) 在上面表格中出现的次数至多有 \(1\) 次,也就是说 \(x^m\) 的出现次数在原式中也至多有 \(1\) 次。

找到这一次所对应的 \(i, j\) 是容易的。因为 \(iP + j = m\),所以 \(i = \lfloor m \div P \rfloor, j = m \bmod P\)

  • \(j \le r\) 时,这一项在原式中存在,其系数就是 \(\binom{k}{i} \binom{r}{j}\)

  • \(j > r\) 是,这一项在原式中不存在,其系数为 \(0\)。但是因为此时 \(\binom{r}{j} = 0\)(我们定义当 \(x < y\)\(\binom{x}{y} = 0\)),所以依然可以说其系数为 \(\binom{k}{i} \binom{r}{j}\)

综上所述:

\[\begin{aligned} \binom{n}{m} &= [x^m](1 + x)^{n} \\ &\equiv [x^m] \left( \sum_{i = 0}^{k} \sum_{j = 0}^{r} \left( \binom{k}{i} \binom{r}{j} x^{iP + j} \right) \right) \\ &\equiv \binom{k}{\lfloor m \div P \rfloor} \binom{r}{m \bmod P} \pmod{P} \end{aligned} \]

根据定义,\(k = \lfloor \frac{n}{P} \rfloor\)\(r = n \bmod P\),所以:

\[\boxed{ \binom{n}{m} \equiv \binom{\lfloor n \div P \rfloor}{\lfloor m \div P \rfloor} \binom{n \bmod P}{m \bmod P} \pmod{P} } \]

证毕。

posted @ 2025-09-24 20:44  Jerrycyx  阅读(26)  评论(0)    收藏  举报