原根

原根

阶:满足 an1(modp) 的最小的 n,为 ap 的阶
原根:若 (a,m)=1δm(a)=φ(m),则 a 为模 m 的原根
判定方法:
若对于 φ(m) 的每个素因子 p,都有 aφ(m)p1(modp)

存在定理:需要满足 m=2,4,px,2px
原根个数:φ(φ(m))


原根的所有作用其实都围绕其模意义下的指数唯一性展开,根据这一性质可以进行乘法向加法的转化

由阶的性质,gx 在模 p 意义下各不相同,当 p 为质数时,可以发现 gx 正好对应了 1 p1 中的所有数,它们形成了一个映射关系,那么所有 xy 的运算均可转化为 gx+y 的运算

(貌似多想式可以把加法转化为乘法?这个不太清楚不敢瞎说)


BSGS

BSGS 作用就是求方程 axb(modp) 的解的工具
p 为质数时可以朴素求解,否则可以通过 exBSGS 求解

一定注意特判一些边界情况,如 x=0

  • exBSGS

(a,p)=d,那么 at+kp=b

同时除以 d,得到 adat1+kpd=bq

那么 adat1bd(modpd)

at1bd(ad)1(modpd)

  • 变形

对于 xab(modp)
可以把左右都通过原根一上去后使用扩欧求解,也可以把左边一上去后先用 BSGS 求解完再扩欧
但是注意扩欧的同余系变成了 φ(p)


杂题

A. 整除

xmx(modp)
那么等价于 gmigi(modp)
此时求解 (m1)i0(modp) 解的个数
(p1)(m1)lcm(p1,m1)+1=gcd(p1,m1)+1


CF1106F Lunar New Year and a Recursive Sequence

可以发现式子中出现了乘积式,那么用原根整成加法式
因为加法式的好处是可以通过矩乘递推
但是现在知道了第 n 项的值而不知道第 k
可以发现矩阵是可以知道的,而我们只关心第 n 项,可以发现 fk 对第 n 项的值只与矩阵的一个值有关,于是可以解得 fk
但是这些都是基于指数上的,真实情况是 fkx=fn,还需要解一个质数方程

posted @   y_cx  阅读(118)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示