常用数学知识及相关推导
数论
费马小定理:
若\(p\)为素数且\(gcd(a,p)=1\),则\(a^{p-1}\equiv1\pmod{p}\)
另一种形式:\(a^{p-2}\equiv{a}^{-1}\pmod{p}\)(即\(a^{p-2}\)是\(a\)在模\(p\)意义下的逆元)
这是欧拉定理的特殊情况,在此不作证明了。
欧拉定理:
当\(gcd(a,m)=1\)时,\(a^{\varphi(m)}\equiv1\pmod{m}\)。变式:\(a^c\equiv{a^{c\mod\varphi(m)}\pmod{m}}\)
证明如下:
设\(m\)以内与其互质的数分别为\(x_1,x_2,...,x_{\varphi(m)}\),令\(p_i=ax_i\)
引理1:\(p_i\)之间两两模\(m\)不同余,\(x_i\)之间两两模\(m\)不同余。
证明:反证法。若\(\exists{p_i},p_j(i\ne{j})\),使得\(p_i\equiv{p_j}\pmod{m}\),即\(a(x_i-x_j)\equiv0\pmod{m}\)。
又\(gcd(a,m)=1\),且\(x_i-x_j\in(0,m)\),显然不成立。证毕。
引理2:每个\(p\)模\(m\)的结果都与\(m\)互质。
证明:依然反证法。设\(p_i=k*m+r,gcd(r,m)>1\)。
则\(gcd(r,m)|{p_i}\),即\(gcd(m,p_i)>1\)。显然不成立。证毕。
综上所述,设集合\(A=\{x_i \% m\}\),\(B=\{p_i \% m\}\),则\(A=B\)。(对于每个\(p_i\),能且只能找到一个\(x_i\),使得\(p_i\equiv{x_i}\pmod{m}\))。
全部乘起来,可以得到\(a^{\varphi(m)}\prod\limits_{i=1}^nx_i\equiv\prod\limits_{i=1}^nx_i\pmod{m}\)。即\(a^{\varphi(m)}\equiv1\pmod{m}\)。证毕。
扩展欧拉定理:
\(a^c=\begin{cases}a^{c\mod\varphi(m)}\pmod{m}, \qquad\ (gcd(a,m)=1)\\a^c,\qquad\qquad\qquad\qquad\qquad\quad(gcd(a,m)>1,c<\varphi(m))\\a^{(c\mod\varphi(m))+\varphi(m)},\qquad\qquad(gcd(a,m)>1,c\ge\varphi(m))\end{cases}\)
证明如下:
先证\(\forall{p}\in{P}\),\(p^k\equiv{p^{k\mod\varphi(m)+\varphi(m)}}\pmod{m}(k\ge\varphi(m))\)。
设\(m=s*p^r(gcd(p,s)=1)\),则\(\varphi(m)=\varphi(s*p^r)=\varphi(s)*\varphi(p^r)\)(积性函数的性质)。所以\(\varphi(s)|\varphi(m)\)。
又\(p^{\varphi(s)}\equiv1\pmod{s}\),则\(p^{\varphi(m)}\equiv1\pmod{s}\),则\(p^{\varphi(m)+r}\equiv{p^r}\pmod{m}\)。(这里用到一个同余的小性质。若\(a\equiv{b}\pmod{c}\),则\(\lambda*a\equiv{\lambda*b}\pmod{\lambda*c}\))。
因为\(\varphi(m)=\varphi(s)*\varphi(p^r)=\varphi(s)*(p-1)*p^{r-1}\),所以\(r\le\varphi{(m)}\)。又\(k\ge\varphi(m)\),所以可以构造出\(r\)满足\(p^k=p^{k-r+r}\equiv{p^{k+\varphi(m)}}\pmod{m},k\ge{r}\)。
归纳可知,\(p^k\equiv{p^{k+t\varphi(m)}},t\in{Z}\),且指数要为正。故最小的合法指数为\(k\mod\varphi(m)+\varphi(m)\)。于是可知\(p^k\equiv{p^{k\mod\varphi(m)+\varphi(m)}}\pmod{m}(k\ge\varphi(m))\)。
再对\(a\)进行分类讨论:
当\(a=p^k\)时,\(a^c\equiv{p}^{kc}\equiv{p}^{kc+\varphi(m)}\equiv{p}^{kc+k\varphi(m)}\equiv{(p^k)^{c+\varphi(m)}}\equiv{(p^k)^{c\mod{m}+\varphi(m)}}\),成立。
当\(a=\prod{p_i^{k_i}}\)时,依据唯一分解定理做数学归纳,即可证正确性。证毕。
线性求逆元:
设模数为\(p\),\(p=ax+b\)。那么
两边同时乘上\(x^{-1}b^{-1}\),得
就可以线性求出了。
code:
inv[i] = (p - (p / i)) * inv[p % i] % p (inv[1] = 1)
组合数学:
第一类斯特林数:
设\(\begin{bmatrix}n\\k\end{bmatrix}\)表示将\(n\)个数划分为\(k\)个圆排列的方案数。那么
第二类斯特林数:
设\(\begin{Bmatrix}n\\k\end{Bmatrix}\)表示\(n\)个有标号球,放到\(k\)个无标号的盒子里的方案数。那么
(因为球有编号,所以我们考虑最后一个球放在哪里。第\(n\)个球可以新开一个盒子,或者放在原来的\(k\)个盒子里)
性质:\(x^n=\sum\limits_{i=0}^{n}\begin{Bmatrix}{n}\\{i}\end{Bmatrix}x^{\underline{i}}\)
排列计数:
对于一个相对顺序确定的长度为\(x\)的序列和一个相对顺序确定的长度为\(y\)的序列,它们合并的方案数为\(\dbinom{x+y}{y}\)。
下降幂
\(\dbinom{n}{i}i^{\underline{j}}=\dbinom{n-j}{i-j}n^{\underline{j}}\) (直接拆开算即可)