组合数(数论)

UPD on 2025.7.30:补充了一些说明,使证明更加容易理解


下面给出了关于组合数素因子幂次的基本性质:

  1. (勒让德公式) \(v_p(n!)=\sum\limits_{i=1}^\infty[\frac n{p^i}]\)

这里对 \(1-n\)\(p\) 的倍数统计一次贡献,再对 \(p^2\) 的倍数统计,依此类推,这样 \(p^k\) 的倍数统计了 \(k\) 次,它对 \(n!\)\(p\) 的幂次贡献也是 \(k\)

\(v_p(C_n^m)=\sum\limits_{i=1}^\infty ([\frac n{p^i}]-[\frac m{p^i}]-[\frac{n-m}{p^i}])\)

  1. \(v_p(n!)=\frac{n-S_p(n)}{p-1}\)

其中 \(S_p(n)\) 表示 \(p\) 进制下 \(n\) 的数码和

\(v_p(C_n^m)=\frac{S_p(n-m)+S_p(m)-S_p(n)}{p-1}\)

直接推出 \(Kummer\) 定理: \(v_p(C_n^m)\) 恰好是 \(p\) 进制下 \(m+(n-m)\) 的进位数,或 \(n-m\) 的借位数

证明:设 \(n=(a_ka_{k-1}...a_0)_p\) ,则 \([\frac n{p^i}]=a_kp^{k-i}+a_{k-1}p^{k-i-1}+...+a_{i}\) ,则

\( \begin{aligned} \sum\limits_{i=1}^k[\frac n{p^i}] &=\sum\limits_{i=1}^k(a_kp^{k-i}+...+a_i)\\ &=\sum\limits_{j=1}^k a_j(p^{j-1}+p^{j-2}+...+1)\\ &=\sum\limits_{j=1}^k a_j\frac{p^j-1}{p-1}\\ &=\frac{n-S_p(n)}{p-1} \end{aligned} \)

  1. (Lucas定理) 记 \(n=(a_ka_{k-1}...a_0)_p,m=(b_kb_{k-1}...b_0)_p,a_k>0\) ,则 \(C_n^m\equiv C_{a_k}^{b_k}C_{a_{k-1}}^{b_{k-1}}...C_{a_0}^{b_0}\:(mod~p)\)

证明:考虑归纳,设 \(n=ps+a,m=pt+b\) ,只需证 \(C_{ps+a}^{pt+b}\equiv C_s^tC_a^b\:(mod~p)\)

(可能出现 \(s<t,a<b\) ,此时结果为 \(0\) ,因为根据定理 \(2\) ,这里将要产生退位,肯定是 \(p\) 的倍数)

最朴素的方法是直接写成阶乘形式:

\(\large\frac{(ps+a)!}{(pt+b)!(p(s-t)+a-b)!}\equiv\frac{s!}{t!(s-t)!}\cdot\frac{a!}{b!(a-b)!}\:(mod~p)\)

由于 \(ps+a\equiv a,ps+a-1\equiv a-1,...,pt+b\equiv b,pt+b-1\equiv b-1,...\) ,可以两边做乘除(注意只有不是 \(p\) 的倍数才能通过逆元除)

\(\large \frac{(ps)!}{(pt)!(p(s-t))!}\equiv \frac{s!}{t!(s-t)!}\:(mod~p)\)

实际上 \(\large \frac{ps\cdot p(s-1)...p}{pt\cdot p(t-1)...p\cdot p(s-t)...p}\equiv RHS\:(mod~p)\) ,而左边其余的数模 \(p\) 意义下可以消掉。

更好的证明考虑二项式定理:

\((1+x)^n=[(1+x)^p]^s(1+x)^a\equiv (1+x^p)^s(1+x)^a\:(mod~p)\)

多项式 \((1+x)^n\)\(x^m\) 系数为 \(C_n^m\) ,多项式 \((1+x^p)^s(1+x)^a\)\(x^m\) 的系数为 \(C_s^tC_a^b\) ,得出结论。

例1

求证:对给定正整数 \(k\) ,存在无穷个正整数 \(n\) ,使得 \(\frac{(2n)!}{n!(n+k)!}\) 是整数

对每个 \(q=p^i\) ,考虑 \([\frac {2n}q]-[\frac{n}q]-[\frac {n+k}q]\) ,当 \(k<\frac q2\) 时为非负数(由 \(Hermite\) 恒等式得到 \([2x]=[x]+[x+\frac 12]\)

法一:只需考虑素数 \(p_1<p_2<...<p_n<2k\) 的整除关系,这时用取整函数和带余除法分析比较复杂,考虑使用 \(kummer\) 定理

\(\frac{(2n)!}{n!(n+k)!}=\frac1{k!}\cdot C_{2n}^n\cdot\frac{1}{C_{n+k}^k}\)

我们声称:对所有 \(p_i\) ,可以使 \(v_{p_i}(C_{2n}^n\cdot\frac{1}{C_{n+k}^k})\) 任意大

只需 \(n_p+n_p\) 进位尽可能多, \(n_p+k_p\) 进位尽可能少

我们设 \(p^{\alpha-1}\le k<p^\alpha\) ,可取任意 \(t\) 并令 \(n\equiv (p^t-1)p^\alpha~(mod~p^{\alpha+t})\) ,使 \((n+n)_p\) 至少产生 \(t\) 次进位,同时 \((n+k)_p\) 不产生任何进位

这样的 \(n\) 有无穷个。并且 \(t\) 可任意大,也即 \(v_{p_i}(C_{2n}^n\cdot\frac{1}{C_{n+k}^k})\) 可以任意大。

法二:考虑到对 \(p_i<2k\) ,当 \(q=p_i^\alpha\ge 2k\)\([\frac {2n}q]-[\frac{n}q]-[\frac {n+k}q]\) 是非负数

进一步地,希望是正数,补足 \(p_i^\beta<2k\) 产生的负数

我们说:可取无穷个正整数 \(n\) ,使得 \(\sum\limits_{q=p_i^j\ge 2k} ([\frac {2n}q]-[\frac{n}q]-[\frac {n+k}q])\) 任意大

本做法的关键是:用带余除法刻画 \([\frac nm]\) ,可以把 \(n(mod~m)\) 设为负数,具体地:

\(n\equiv -(k+1)\:(mod~p^t)\)\(t\) 是任意正整数

\(q=p_i^j> 2(k+1),j\le t\) ,可知 \([\frac {2n}q]-[\frac{n}q]-[\frac {n+k}q]=[\frac {-2(k+1)}q]-[\frac{-(k+1)}q]-[\frac {-1}q]=1\)

由于 \(t\) 可任意大,使得 \(\sum\limits_{q=p_i^j\ge 2k} ([\frac {2n}q]-[\frac{n}q]-[\frac {n+k}q])\) 任意大,且一个 \(t\) 对应的 \(n\) 有无穷个,证毕

例2

求所有正整数 \(n\ge 2\) 满足 \(C_n^0,C_n^1,..,C_n^n\) 的最大公倍数等于不超过 \(n\) 的所有素数的乘积

\(N=[C_n^0,C_n^1,..,C_n^n],M=\prod_{p\le n}p\)\(p\) 是素数),则 \(N=M\)

先记 \(n=(a_ka_{k-1}...a_0)_2\) ,若 \(a_i\) 全为 \(1\) ,由 \(Lucas\) 定理知 \(C_n^m\equiv 1\:(mod~2)\) ,这与 \(2\mid M\) 矛盾

那么存在 \(r\) ,使得 \(a_r=0,a_{r-1}=...=a_0=1\) ,对 \(m=2^k-1=(11...1)_2\) ,由 \(Kummer\) 定理(退位次数)知 \(v_2(C_n^m)=k-r\) ,又 \(v_2(M)=1\)\(r\le k-1\) ,只能是 \(r=k-1\)

现在 \(n=2^{k+1}-1-2^{k-1}=3\cdot 2^{k-1}-1\) ,记 \(n=(b_lb_{l-1}...b_0)_3\)

由于 \(9\nmid n+1\) ,知 \(b_1\ne 2\) ,令 \(m=3^l-1=(222..2)_3\) ,则 \(v_3(C_n^m)=l-2\le 1\) ,从而 \(l\le 3\)\(n\le 18+3+2=23\)

代入 \(k\) 得到 \(n=3\cdot 2^{k-1}-1\) ,知 \(n=23,11,5,2\)

经检验 \(n=23,11,2\) 是问题的解

注:可以用恒等式 \([1,2,...,n+1]=(n+1)[C_n^0,...,C_n^n]\) 解决(通过估计两边素因子幂次证明)

例3

\(n=2^k\cdot l,l\) 为奇数 定义 \(f(n)=l^{1-k}\) ,证明: \(\prod_{r=1}^nf(r)\) 为不大于 \(n\) 的所有正奇数的最小公倍数的整数倍

回忆勒让德公式,将 \(p\) 的倍数统计一次, \(p^2\) 的倍数再统计一次,此时 \(p^2\) 的倍数就有了 \(2\) 的贡献,以此类推

现在考虑 \(\sum\limits_{m=1}^nv_p(f(m))=\sum\limits_{m=1}^n(1-k_m)v_p(m)=\sum\limits_{m=1}^nv_p(m)-\sum\limits_{m=1}^nk_mv_p(m)\)

关键是对 \(k_mv_p(m)=v_2(m)v_p(m)\) 的处理:我们可以对 \(p\) 的倍数先统计一次 \(v_2(m)\) ,再对 \(p^2\) 的倍数统计一次 \(v_2(m)\) 可以得到:

\(\sum\limits_{m=1}^nv_2(m)v_p(m)=v_2([\frac np]!)+v_2([\frac n{p^2}]!)+...=\sum\limits\limits_{k=1}^{[log_pk]}([\frac n{p^k}]-S_2([\frac n{p^k}]))\)

这里统计 \(v_2\) 是为了使用公式 \(v_p(n!)=\frac{n-S_p(n)}{p-1}\) 从而抵消 \([\frac n{p^k}]\) ,带回原式得

证毕。

\(\sum\limits_{m=1}^nv_p(m)-\sum\limits_{m=1}^nk_mv_p(m)=\sum\limits\limits_{k=1}^{[log_pk]}S_2([\frac n{p^k}])\ge [log_pk]\)

勒让德公式的直接推论是: \(\frac np-1<v_p(n!)<\frac n{p-1}\)

并且根据 \([\frac {a+b}c]-[\frac ac]-[\frac bc]\in \{0,1\}\) ,还有 \(p^{v_p(C_n^k)}\le n\)

例4

\(S_n=1!+2!+...+n!\) ,证明:存在正整数 \(n\) 使得 \(S_n\) 有超过 \(10^{2012}\) 的素因子

这个做法很重要,在控制素因子幂次里有许多类似的题。想法是试图找到两个数都具有 \(p_i\) 的较高幂次,但它们的差达不到这个 \(p_i\) 的幂次(的量级)

我们设所有不超过 \(10^{2012}\) 的素数是 \(p_1<p_2<...<p_k\)

下面定义:

\(\large f(n)=i,i\in\{1,2,...,k\} \text{ 使得 } p_i^{v_{p_i}(S_n)}\text{最大}\)

\(\large g(n)=p_{f(n)}^{v_{p_{f(n)}}(S_n)}\)

对充分大 \(n\) ,考虑 \(\{n,n+1,...,n+k\}\) ,根据抽屉原理存在 \(f(n)=f(m)\) ,于是

\(\min \{g(n),g(m)\}\mid S_m-S_n=n!(n+1+(n+1)(n+2)+...+(n+1)(n+2)...(m-1)m)\)

\(p=p_{f(n)}\) ,令 \(p^t\le n+k<p^{t+1}\) ,由于

\(n+1+(n+1)(n+2)+...+(n+1)(n+2)...m<p^{k^2(t+1)}\cdot C<p^{k^2t+C}\)

\(\large v_p(n!)<\frac n{p-1}\)

于是 \(v_p(S_m-S_n)<\frac{n}{p-1}+k^2t+C<\frac n{p-1}+K\log n+C\)

(注意 \(k\) 是常数)

所以

\(\large p^{\frac n{p-1}+K\log n+C}\ge g(n)\ge S_n^{\frac 1k}>\sqrt[k]{n!}>n^{\frac{n}{2k}}\)

对充分大 \(n\) 显然矛盾,证毕。

例5

求正整数 \(x,y\) 使得 \(x!-y!=x^{2007}-y^{2007}\)

我们将证明 \(x=y\) 的平凡解是问题的所有答案。

如果 \(y=1\)\(x!=x^{2007}\) ,无解

不妨 \(x>y\) ,如果 \(y>1\) ,取 \(p\mid y\) ,于是 \(p\mid x!-y!\) ,然后 \(p\mid x\) ,这给出 \(x-y\ge p\ge 2\)

更进一步,我们看到 \(v_p(x!)>v_p(y!)\) ,所以 \(v_p(y!)=v_p(x!-y!)= v_p(x^{2007}-y^{2007})\ge 2007\) ,从而 \(\frac y{p-1}\ge 2007\)

\(y\) 含有不是 \(2\) 的素因子,那么 \(y\ge 4014\) 。我们下面证明对 \(x\ge 4014\) 问题无解,因为

\(x!-y!=y!(x(x-1)...(y+1)-1)>y!x(x-1)...(y+2)y=x!\cdot \frac y{y+1}\)

根据 \(y<x-1,y>1\) ,可知 \((x-y)(y+1)\cdot \frac y{y+1}\ge x\)

\((x!-y!)^2\ge (x\cdot 1)[(x-1)\cdot 2]...(1\cdot x)\cdot (\frac y{y+1})^2>x^x\ge x^{4014}>(x^{2007}-y^{2007})^2\)

接下来 \(y\) 只能含有 \(2\) 的素因子,于是 \(y=2048,x<4014\) ,所以 \(v_2(x)<v_2(y)\)

分析两边 \(2\) 的幂次, \(v_2(y!)=2047\) ,而 \(v_2(x^{2007}-y^{2007})=v_2(x^{2007})=2007k\) ,矛盾!

证毕。

例6

\(x\in R\) 定义 \(||x||\) 表示 \(x\) 与最近的整数的距离,证明:若 \(a,b\) 是正整数,则存在素数 \(p\) 与正整数 \(k\) 使得 \(||\frac a{p^k}||+||\frac b{p^k}||+||\frac {a+b}{p^k}||=1\)

\(x=\frac a{p^k},y=\frac b{p^k}\)

不难看到 \(||x||=|x-[x+\frac 12]|\)

希望是 \(\pm(x-[x+\frac 12])\pm (y-[y+\frac 12])\pm (x+y-[x+y+\frac 12])=1\) 。由于三个数都不超过 \(\frac 12\) ,如果对一种符号选择成立,就说明三个数都是非负的,也就是绝对值对应的情况(换而言之,如果选了一些符号得到等式成立,说明对绝对值等式也成立)

选择 \(+,+,-\) ,并且知道 \([2x]-[x]=[x+\frac 12]\) ,所以要找到 \([2(x+y)]-[2x]-[2y]-([x+y]-[x]-[y])=1\) ,如果取 \(p\)\(C_{2(a+b)}^{2a}/C_{a+b}^a\) 最简形式分子的素因子,就一定能找到对应的 \(k\)

(因为 \(v_p(C_{2(x+y)}^{2x}/C_{x+y}^x)=\sum\limits_{k=1}^{\infty} [\frac{2(a+b)}{p^k}]-[\frac{2a}{p^k}]-[\frac{2y}{p^k}]-([\frac{x+y}{p^k}]-[\frac x{p^k}]-[\frac y{p^k}])\ge 1\)

分子不会是 \(1\) ,所以肯定可以找到 \(p\)

例7

\(a,b\) 是正整数,满足 \(a\) 被任何素数 \(p\) 除的余数不超过 \(b\) 被同一个素数 \(p\) 除的余数。证明: \(a=b\)

这是不用 \(Schur-Sylvester\) 定理的证明。显然 \(a<b\)

首先,如果 \((a,b)\) 是解,那么 \((b-a,b)\) 也是解,我们取更小的一个满足 \(2a<b\)

我们看组合数 \(C_b^a=b(b-1)...(b-a+1)/a!\) ,根据题设, \(b,b-1,...,b-a+1>a\) 应当没有素数

我们考虑 \(v_p(C_b^a)=\sum\limits_{t=1}^{\infty} [\frac b{p^t}]-[\frac a{p^t}]-[\frac{b-a}{p^t}]\)

注意当 \(t=1\) 时,根据题设, \([\frac b{p^t}]-[\frac a{p^t}]-[\frac{b-a}{p^t}]=0\) ,所以 \(v_p(C_b^a)\le \log_p b-1\)

\(k_p\) 是最大的使 \([\frac b{p^t}]-[\frac a{p^t}]-[\frac{b-a}{p^t}]>0\)\(t\) ,我们看到 \(v_p(C_b^a)\le k_p-1\)

于是有 \(C_b^a\mid \frac{\prod_{p\le a}p^{k_p}}{\prod_{p\le a}p}\) ,即

\(\large \frac{b(b-1)...(b-a+1)}{\prod_{p\le a}p^{k_p}}\mid \frac{a!}{\prod_{p\le a}p}\)

我们看到每个 \(p^{k_p}\)\(b(b-1)...(b-a+1)\) 中都有一个倍数,因为 \([\frac b{p^{k_p}}]-[\frac{b-a}{p^{k_p}}]>0\)

直接把这个倍数与 \(p^{k_p}\) 一起拿掉,于是 \(\frac{b(b-1)...(b-a+1)}{\prod_{p\le a}p^{k_p}}\ge (b-a+1)^{a-\pi(a)}\)

但是 \(b-a+1\ge a\) ,于是 \((b-a+1)^{a-\pi(a)}\ge a^{a-\pi(a)}\ge \frac{a!}{\prod_{p\le a}p}\) ,矛盾

最后的一些例子与构造有关。

例8

定义 \(a_n\) 是最大的满足 \((a_n)!\mid \prod\limits_{k=1}^n[\frac nk]\) 的正整数,求证:存在无穷正整数 \(m\) 使得 \(a_{m+1}\le a_m\)

\(f(n)=\prod\limits_{k=1}^n[\frac nk]\)

我们先说: \(a_n\ge [\sqrt n]\) ,因为取 \(\large k=[\frac n{[\frac nt]}],t\le [\sqrt n]\) 时,我们看到

\(\frac {n-t+1}t\le [\frac nt]\le\frac nt\)

\(\large t+1>\frac{nt}{n-t+1}\ge \frac n{[\frac nt]}\ge t\)

并且 \([\frac nt]\) 互不相同,所以 \(([\sqrt n])!\mid f(n)\)

很显然题目只要找到 \(a_{m+k}<a_m\) 的无穷多个 \((m,k)\) 就可以了,如果联想到利用 \(p\nmid f(n)\) 控制 \(a_n\) ,就好办了

接下来,我们声称对所有素数 \(p\) ,有 \(a_{p^2-1}<a_{p^2-p}\)

首先, \((p-1)!\mid f(p^2-1),f(p^2-p)\)

其次,我们声称 \(p\nmid f(p^2-1)\) ,对于 \(1\le t<p\) ,我们看到 \([\frac{p^2-1}t]=\frac{p^2-d}t,d\le t<p\) ,不是 \(p\) 的倍数,而对 \(p\le t,\frac{p^2-1}t<p\)

\(p\mid f(p^2-p),(p,(p-1)!)=1\) ,也即 \(p!\mid f(p^2-p)\) ,所以 \(a_{p^2-p}\ge p>a_{p^2-1}\)

还有一些小事,最好让 \([p^2-p,p^2-1]\) 区间之间互不重叠,不过这个不难(比如说令 \(p_{k+1}>p_k^2\)

例9

对给定正整数 \(d\) 与素数有限集 \(S=\{p_1,p_2,...,p_k\}\) ,证明:存在无穷个 \(n\) ,使得 \(d\mid v_p(n!)\) 对每个 \(p\in S\) 成立

没有办法直接构造,我们可以考虑先满足一个素数,因为是无穷个 \(n\) ,就可以继续取,直到满足所有

关键的想法是利用 \(kummer\) 定理,当 \(m<p^k\mid n\) 时, \(v_p((n+m)!)=v_p(n!)+v_p(m!)\)

当然,我们要这个加法对所有素数成立,我们看这个序列:

\(a_n<p_i^{t_i},a_{n+1}=\prod p_i^{t_i+1}\)

于是 \(v_p((a_{i_1}+a_{i_2}+...+a_{i_t})!)=v_p(a_{i_1}!)+v_p(a_{i_2}!)+...+v_p(a_{i_t}!)\) ,对任何 \(p\in S\) 成立

我们只要选取 \(a\) 的一个无穷子序列 \(a_{i_1},...\) 使得其中每个数满足 \(v_{p_1}(a_{i_k})\: mod~d\) 均相同(根据抽屉原理),再从无穷子列选 \(p_2\) 对应的无穷子列,直到 \(S\) 的素数都满足,然后任选 \(d\) 个相加即可。

例10

证明:对任何素数有限集 \(S=\{p_1,p_2,...,p_k\}\) ,存在无穷个 \(m\) 使得对任意 \(p\in S\) ,不存在 \(n\) 使得 \(v_p(n!)=m\)

定义这样的 \(m\)\(p-\) 不可表示的。

核心想法是,\(v_p(p^k!)\)\(v_p((p^k-1)!)\) 之间有一段长为 \(k\) 的空隙不可表示,想多长就多长,足够长后,就又能给第二个素数找到足够长不可表示空隙,依次类推

这个问题的书写十分麻烦,我们用加强归纳,先做奠基:对任何 \(k\) 与素数 \(p\) ,存在 \(n_k\) 使得连续 \(n_k\) 个数,必有 \(k\) 个连续的 \(p-\) 不可表示数。

只要连续 \(n_k\) 个数有一个是 \(v_p((dp^{k+1})!)\) 形式,前面就会有 \(k\) 个不可表示的

\(n_k=v_p((2p^{k+1})!)-v_p(p^{k+1}!)\) 即可。

不过连续 \(n_k\) 个数不一定有 \(v_p((dp^{k+1})!)\),比如 \(v_p(((p-1)p^{k+1})!)\)\(v_p(p^{k+2}!)\) 之间相隔超过 \(n_k\) 。如果考虑 \(v_p(((p-1)p^{k+1})!)+1\) 开始的 \(n_k\) 个数,最后 \(k+1\) 个均无法表示(而不是通常的 \(k\) 个),所以并无大碍。

我们可以归纳证明对 \(S=\{p_1,p_2,...,p_k\}\) 和任意 \(s\) ,存在 \(t_s\) 使得任意连续 \(t_s\) 个数中有 \(s\) 个对 \(S\) 中的任意元素不可表示

我们只要对 \(p_{k+1}\)\(n_{t_s}\) ,连续 \(n_{t_s}\) 个数必有 \(t_s\) 个连续的 \(p_{k+1}-\) 不可表示的,这些里有 \(s\) 个连续的对 \(S\) 不可表示的。

posted @ 2024-07-18 11:20  ATTLAS  阅读(345)  评论(0)    收藏  举报