数论 2

数论 2

以下 p 全是素数。

Wilson:素数 p(p1)!1(modp)

推论:计算 n! 所有数除去质因子 p 之后乘积 (n!)pp:每 p 个分一组,散块暴力(或者预处理),整块的前 p1 个 Wilson,最后一个全都除以 p 之后递归。

每个数和其逆元配对。仅需考虑逆元为本身即 x21(modp),仅有 x=1,1

CRT:和拉插一样构造。xai(modmi),对于每个 ai 配的系数要满足模 mi1,模其它的是 0,那首先让其它的 mj 乘起来,再乘上其在模 mi 意义下的逆元,即为 ai 前面配的系数。

Legendre 公式:pn! 中次幂为 vp(n!)=npi=nSp(n)p1,这里 Sp(n)p 进制数位和。

直接考虑所有 p 的倍数,全都除以 p 之后递归。由此归纳。

Kummer 定理:vp((nm))=Sp(m)+Sp(nm)Sp(n)p1。常用推论:多重组合数模 2 当且仅当下标们二进制下两两不交。

Wilson 定理的推广:

(pq!)p{1,(p=2)(q3),1,otherwise.

考虑配对。解 x21(modpq)pq=2 时只有 1p=2,q3 时有 ±1,2q1±1,其余情况仅有 ±1

现在和上文中同理,也能计算 (n!)pmodpq 了,按 p 分组,按 pq 分块。散块暴力,整块直接套用 Wilson 的推广,每组最后一个数单独拉出来,统一除以 p 以后递归算。

Lucas:(nm)(n/pm/p)(nmodpmmodp)(modp)

对于多项式 f(x) 满足 fp(x)f(xp)(modp)

欲求 (nm)=[xm](1+x)n=[xm](1+x)p[n/p](1+x)nmodp=(1+xp)[n/p](1+x)nmodp.

而前者仅在 p 的次幂处有取值,后者次数 <p,那么前者只能取 p[m/p] 这一项,后者只能取 mmodp。即得 Lucas 定理。

exLucas:

先将模数分解为 piai,对每个 piai 求答案然后 CRT 合并出来。现在问题就是求 (nm)(modpa),用 Kummer 算 p 上的指数是多少,Wilson 推论算所有数除去 p 因子之后的乘积就行。

教练,我还想学这个 https://oi-wiki.org/math/number-theory/congruence-equation/

posted @   do_while_true  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?

This blog has running: 1845 days 1 hours 33 minutes 15 seconds

点击右上角即可分享
微信分享提示