[笔记] 简单数论定理

费马小定理#

a,pZp 为质数,且 a0(modp) 时有:ap11(modp)

所以 ababmod(p1)(modp)

欧拉定理#

a,mZ,且 gcd(a,m)=1 时有: aφ(m)1(modm)

这里 φ(x) 是数论中的欧拉函数。

所以 ababmodφ(m)(modm)

扩展欧拉定理#

a,mZgcd(a,m)1 时有:
ab{ab,b<φ(m)a(bmodφ(m))+φ(m),bφ(m)(modm)

(第一种状况的含义是,如果 b<φ(m) 的话,那么就不能降幂。一般题目中 m 不会太大,则此时复杂度可以接受。而如果 bφ(m) 的话,那么复杂度可能超出预期,这个时候需要降幂来降低复杂度)

ExCRT#

个人认为比 CRT 更加好理解和记忆。

假设有 n 个同余方程:

xb1(modp1)xb2(modp2)xbn(modpn)

可以直接使用 Exgcd 将这些同余方程合并:

b1+k1p1=b2+k2p2(modlcm(p1,p2))

根据这一点,用 Exgcd 求出 k1,k2 即可将方程合并。

卢卡斯定理#

用于模数为质数,但是较小的时候,求组合数:

(nm)=(n/pm/p)(n%pm%p)

当模数不是质数时,如果分解质因数,每个质因数的次数都为 1,那么分开做,再用 CRT 合并即可。

否则要用到 ExLucas。

库默尔定理#

mn 为正整数,p 为素数,则 (n+mm)p 的幂次等于 m+np 进制下的进位次数。

posted @   IrisT  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
主题色彩