数论算法总结

Posted wxjor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数论算法总结相关的知识,希望对你有一定的参考价值。

数论算法总结

费马小定理

(a^{p-1} equiv 1 pmod{p}space ((a,p)=1,isprime(p)))

  • 证明:Link
    这里给出通用形式:考虑任意正整数(amod pspace ((a,p)=1))的剩余系,有(1,2,3,ldots ,p-1)
    那么我们再取任意正整数(a'((a',p)=1)),将这个剩余系乘上(a')(mod p)后,剩余系还是(1,2,ldots,p-1)的一个排列。
    将这些数字连乘得到:(a'^{p-1} imes (p-1)! equiv (p-1)! mod p),两边同除((p-1)!)得到:(a'^{p-1} imes 1 equiv 1 mod p),将(a')替换为(a)即可。
    求逆元就是(a^{p-2} imes a equiv 1 pmod{p})
    注意一切的推导都是在上面的式子条件下的。

欧拉定理

(a^{phi(n)}equiv 1 pmod{n} ((a,n)=1))

  • 容易发现,前面的费马小定理是欧拉定理的儿子定理。
    主要是来补充一下为什么(a imes x_i mod n ((a,n)=1,x_ileq n))(phi(n))种结果。
    假设(m_i=a imes x_i),那么假设存在(m_iequiv m_j pmod{n} (i ot =j)),那么就有:(a(x_j-x_i)= kn),但是由于((a,n)=1)(x_j-x_i<n),所以无论如何都不可能有解。 剩下的证明和上面一样。

拓展欧拉定理

(a^bequiv egin{cases} a^{b\\%phi(p)}~~~~~~~~~~~gcd(a,p)=1\\ a^b~~~~~~~~~~~~~~~~~~gcd(a,p) eq1,b<phi(p)\\ a^{b\\%phi(p)+phi(p)}~~~~gcd(a,p) eq1,bgeqphi(p) end{cases}~~~~~~~(mod~p))

证明:Link

BSGS

给定 (a,b,p),求最小的非负整数(x)(x)满足(a^x equiv b pmod{p})

首先有费马小定理可知:(a^{kmod (p-1)}equiv a^k pmod{p}),所以说(x< p-1)
那么我们令(m=lceil sqrt{p} ceil)(x=i imes m -j),那么有:[a^{i imes m-j}equiv b pmod{p}]
[a^{i imes m}equiv b imes a^jpmod{p}]
那么暴力在(0 o m)枚举(j),存入Hash表,然后在(1 o m)枚举i查询。

以上是关于数论算法总结的主要内容,如果未能解决你的问题,请参考以下文章

简单数论总结2——同余方程与扩展欧几里得算法

总结——数论:欧几里得算法&扩展欧几里得证明

数论总结 (常用定理+ 模板)

NOIP算法总结与复习

总结:数论 素数

《夜深人静写算法》数论篇 - (18) 逆元