模运算与逆元:
取模定义:
\[a\bmod n\begin{cases} a-\lfloor\frac{a}{n}\rfloor\times n \ \ \ \ \ a\geq0\\ -(-a\bmod n)\ \ \ a<0 \end{cases} \]
取模基本性质:
设 \(a_0=a\bmod n,b_0=b\bmod n\)
- \((a+b)\bmod n=((a\bmod n)+(b\bmod n))\bmod n\)
\(a+b\equiv a_0+b_0(\bmod n)\)
-
\((a\times b)\bmod n=((a\bmod n)\times (b\bmod n))\bmod n\)
\(a\times b\equiv a_0\times b_0(\bmod n)\)
-
对于任意正整数 \(k\) ,有 \(a\bmod n=(a\bmod kn)\bmod n\)
-
若 \(k \mid a\),有 \(\frac{a}{k}\ mod\ n=\frac{a\ \bmod \ kn}{k}\)
设 \(\frac{a}{k}=x\) ,
\[x-\lfloor\frac{x}{n}\rfloor\times n=\frac{xk-\lfloor\frac{xk}{kn}\rfloor\times kn}{k} \]
同余:
若整数 \(a,b\) 除以正整数 \(m\) 的余数相等,则称 \(a,b\) 模 \(m\) 同余,记为 \(a\equiv b (\bmod m)\)
逆元:
设 \(a\) 为整数,\(n\) 为正整数,若整数 \(b\) 满足,\(ab\equiv 1(\bmod n)\),则称 \(b\) 为 \(a\) 模 \(n\) 的逆元。
- 当且仅当 \(\gcd(a,n)=1\) 时, \(a\) 模 \(n\) 的逆元存在。
- 如果 \(b_1,b_2\) 为 \(a\) 模 \(n\) 的逆元,则必有 \(b_1\equiv b_2(\bmod n)\) ,即 \(a\) 模 \(n\) 的逆元在模 \(n\) 意义下唯一。
由于 \(a\) 的逆元唯一,可记为 \(a^{-1}\) 或 \(\frac{1}{n}\) 。可以定义 \(\frac{1}{a}\bmod n\)为 \(a\) 模 \(n\) 的逆元中绝对值最小的数,并取与 \(a\) 相同的符号。
费马小定理:
对于质数 \(p\) 和任意整数 \(a\) ,若 \({\rm gcd}(a,p)=1\) ,则 \(a^p\equiv a (\bmod p)\)
设有数列 \(S=\{1,2,3,\cdots,p-1\},S\bmod p=S\)
则 \(S \times a = a,2a,3a,\cdots,(p-1)a\)
\(\therefore (S\times a\bmod p=(S\bmod p\times\ a\bmod p)\bmod p\) \(({\rm gcd}(a,p)=1)\)
\(\therefore\) 上式\(=S\times (a\bmod p)\) 而 \({\rm gcd}(p,a\bmod p)=1\)
\(\therefore \prod_{i=1}^{p-1}i\equiv \prod_{i=1}^{p-1}a\times i\ (\bmod p)\)
\(\therefore (p-1)!\equiv a^{p-1}\times (p-1)!(\bmod p)\)
\(\therefore 1\equiv a^{p-1}(\bmod p)\)
\(\therefore a\equiv a^p(\bmod p)\)
求逆元:
若 \(p\) 为质数,且 \(\gcd(a,p)=1\) ,则 \(a^{-1}\equiv a^{p-2}(\bmod p)\) 。 计算时间复杂度 \(O(\log p)\) 。
\(a^{p-1}\equiv 1(\bmod p)\)
\(\therefore a\times a^{p-2}\equiv 1(\bmod p)\)
\(\therefore a^{-1}\equiv a^{p-2}(\bmod p)\)
线性求逆元:
代码
inv[1] = 1;
for(int i=2; i<=n; ++i)
inv[i] = ((-1LL*(p/i) % p ) * inv[p%i] % p + p ) % p;
$ \because p\bmod i=p-\lfloor\frac{p}{i}\rfloor\times i$
\(\therefore p=\lfloor\frac{p}{i}\rfloor\times i+(p\bmod i)\)
\(\therefore 0\equiv\lfloor\frac{p}{i}\rfloor\times i+(p\bmod i)(\bmod p)\)
\(\therefore -(p\bmod i)\equiv\frac{p}{i}\times i(\bmod p)\)
\(\therefore -\frac{\lfloor \frac{p}{i}\rfloor\times i}{p\ \bmod\ i}\equiv 1(\bmod p)\)
\(\therefore \frac{1}{i}\equiv-\frac{\lfloor \frac{p}{i}\rfloor}{p\ \bmod\ i}\)
求阶乘逆元:
代码
inv[max1]=ksm(jie[max1],mod-2);//根据费马小定理求逆元
for(int i=max1-1;i>=1;i--){//逆元递推
inv[i]=cheng(inv[i+1],i+1);
}
标签:frac,运算,数论,bmod,times,逆元,therefore,equiv From: https://www.cnblogs.com/classblog/p/18326127对于已知的 \((n+1)!\) 的逆元,只需将其乘上 \(n+1\) 即可得到 \(n!\) 的逆元。
即 \(\frac{1}{(n+1)!}\times (n+1)=\frac{1}{n!}\)