模运算


🪶模运算的规则

三则运算

\((a+b)\%p=(a\%p+b\%p)\%p\)

\((a-b)\%p=(a\%p-b\%p)\%p\)

\((a\times b)\%p=(a\%p \times b\%p)\%p\)

除法的模运算和其它三则的不一样。

\((a^b)\%p=((a\%p)^b)\%p\)

\(\\\)

结合律

\((a+b)\%p+c\%p=(a+(b+c))\%p\)

\((a\times b)\%p\times c\%p=(a\times (b\times c))\%p\)

\(\\\)

交换律

\((a+b)\% p = (b+a)\% p\)

\((a \times b)\% p = (b\times a) \% p\)

\(\\\)

分配律

\((a+b) \% p = ( a \% p + b \% p ) \%p\)

\(((a +b)\% p * c) \% p = ((a * c) \% p + (b * c) \% p) \% p\)

\(\\\)

定理

\(a≡b (\% p)\),则对于任意的\(c\),都有\((a + c) ≡ (b + c) (\%p)\)

\(a≡b (\% p)\),则对于任意的\(c\),都有\((a * c) ≡ (b * c) (\%p)\)

\(a≡b (\% p)\)\(c≡d (\% p)\),则 \((a + c) ≡ (b + d) (\%p),(a - c) ≡ (b - d) (\%p),(a * c) ≡ (b * d) (\%p)。\)

\(\\\)

\(\\\)

🪶写程序时

加减乘类

对于\(a+b,a\times b,a-b\)这类的算式:

在计算前先把\(a,b\)\(p\)取模。

\(\\\)

乘方类

对于\({a}^{b}\)这样的算式:

\(gcd(a,p)=1\)

对于\(a^b\)这类的算式,可以在计算前先把\(a\)\(p\)取模,再把\(b\)\(\varphi(p)\)取模(欧拉定理),在进行乘方运算。

\(gcd(a,p)\ne 1\)

也可以运用扩展欧拉定理进行运算。

\(\\\)

除类

前提:\(b\)\(p\)互质

对于\(\frac{a}{b}\)这样的算式:

先把\(a,b\)各自对\(p\)取模,求\(b\)在模\(p\)意义下的逆元,再计算\(a*b^{-1}\% p\)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM