数论 2
以下 \(p\) 全是素数。
Wilson:素数 \(p\) 有 \((p-1)!\equiv -1\pmod p\)
推论:计算 \(n!\) 所有数除去质因子 \(p\) 之后乘积 \((n!)_p\) 模 \(p\):每 \(p\) 个分一组,散块暴力(或者预处理),整块的前 \(p-1\) 个 Wilson,最后一个全都除以 \(p\) 之后递归。
每个数和其逆元配对。仅需考虑逆元为本身即 \(x^2\equiv 1\pmod p\),仅有 \(x=1,-1\)。
CRT:和拉插一样构造。\(x\equiv a_i\pmod {m_i}\),对于每个 \(a_i\) 配的系数要满足模 \(m_i\) 为 \(1\),模其它的是 \(0\),那首先让其它的 \(m_j\) 乘起来,再乘上其在模 \(m_i\) 意义下的逆元,即为 \(a_i\) 前面配的系数。
Legendre 公式:\(p\) 在 \(n!\) 中次幂为 \(v_p(n!)=\sum \lfloor\frac{n}{p^i}\rfloor=\frac{n-S_p(n)}{p-1}\),这里 \(S_p(n)\) 是 \(p\) 进制数位和。
直接考虑所有 \(p\) 的倍数,全都除以 \(p\) 之后递归。由此归纳。
Kummer 定理:\(v_p(\binom{n}{m})=\frac{S_p(m)+S_p(n-m)-S_p(n)}{p-1}\)。常用推论:多重组合数模 2 当且仅当下标们二进制下两两不交。
Wilson 定理的推广:
考虑配对。解 \(x^2\equiv 1\pmod {p^q}\)。\(p^q=2\) 时只有 \(1\),\(p=2,q\geq 3\) 时有 \(\pm 1,2^{q-1}\pm 1\),其余情况仅有 \(\pm 1\)。
现在和上文中同理,也能计算 \((n!)_p\bmod {p^q}\) 了,按 \(p\) 分组,按 \(p^q\) 分块。散块暴力,整块直接套用 Wilson 的推广,每组最后一个数单独拉出来,统一除以 \(p\) 以后递归算。
Lucas:\(\binom{n}{m}\equiv \binom{\left\lfloor n/p \right\rfloor}{\left\lfloor m/p\right\rfloor}\binom{n\bmod p}{m\bmod p}\pmod p\)
对于多项式 \(f(x)\) 满足 \(f^p(x)\equiv f(x^p)\pmod p\)。
欲求 \(\binom{n}{m}=[x^m](1+x)^n=[x^m](1+x)^{p\cdot [n/p]}(1+x)^{n\bmod p}=(1+x^p)^{[n/p]}(1+x)^{n\bmod p}\).
而前者仅在 \(p\) 的次幂处有取值,后者次数 \(<p\),那么前者只能取 \(p[m/p]\) 这一项,后者只能取 \(m\bmod p\)。即得 Lucas 定理。
exLucas:
先将模数分解为 \(\prod p_i^{a_i}\),对每个 \(p_i^{a_i}\) 求答案然后 CRT 合并出来。现在问题就是求 \(\binom{n}{m}\pmod {p^a}\),用 Kummer 算 \(p\) 上的指数是多少,Wilson 推论算所有数除去 \(p\) 因子之后的乘积就行。
教练,我还想学这个 https://oi-wiki.org/math/number-theory/congruence-equation/