数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)
一般大佬會(huì)給你證明,而菜鳥(niǎo)會(huì)教你怎么使用。
先擺上公式:
ab≡{abmod?(p)gcd(a,p)=1abgcd(a,p)≠1,b<?(p)abmod?(p)+?(p)gcd(a,p)≠1,b≥?(p)(modp)a^ \equiv \begin{cases} a^{bmod\phi (p)} & \text gcd(a,p)=1 \\ a^b & \text gcd(a,p)\neq 1,b<\phi (p)\\ a^{bmod\phi (p)+\phi (p)} & \text gcd(a,p)\neq 1,b\geq \phi (p) \end{cases} \ \ \ \ (modp)ab≡??????abmod?(p)ababmod?(p)+?(p)?gcd(a,p)=1gcd(a,p)?=1,b<?(p)gcd(a,p)?=1,b≥?(p)?????(modp)
歐拉降冪:
ab≡abmod?(p)gcd(a,p)=1a^ \equiv a^{bmod\phi (p)} \ \ gcd(a,p)=1ab≡abmod?(p)??gcd(a,p)=1
適用范圍:
當(dāng)?shù)着c取模的數(shù)互質(zhì),且b較大的時(shí)侯,我這句話用不到,直接擴(kuò)展歐拉降冪就好了,時(shí)間復(fù)雜度差不了多少。
擴(kuò)展歐拉定理:
ab≡{abgcd(a,p)≠1,b<?(p)abmod?(p)+?(p)gcd(a,p)≠1,b≥?(p)(modp)a^ \equiv \begin{cases} a^b & \text gcd(a,p)\neq 1,b<\phi (p)\\ a^{bmod\phi (p)+\phi (p)} & \text gcd(a,p)\neq 1,b\geq \phi (p) \end{cases} \ \ \ \ \ (modp)ab≡{ababmod?(p)+?(p)?gcd(a,p)?=1,b<?(p)gcd(a,p)?=1,b≥?(p)??????(modp)
總結(jié):
用的時(shí)候我們只考慮擴(kuò)展的就可以了,因?yàn)?span id="ze8trgl8bvbq" class="katex--inline">bmod?(p)≡bmod?(p)+?(p)bmod\phi (p)≡bmod\phi (p)+\phi (p)bmod?(p)≡bmod?(p)+?(p)
代碼:
這個(gè)代碼的優(yōu)點(diǎn)是,如果b太大,不能讀入的話也是可以處理的。
如果代碼需要多次計(jì)算的話,可以使用線性篩法,獲得歐拉函數(shù)的值。
題目:
洛谷模板題
總結(jié)
以上是生活随笔為你收集整理的数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CF思维联系– CodeForces -
- 下一篇: 去掉不需要的加载项,让你的Office软