快晴

导航

算法竞赛进阶指南_打卡_数学证明篇_0x30

数学这个东西就比较神奇,没懂证明直接用也不是不行。
但是理解就会少了不少,所以这里开证明篇。为了以后忘了把自己说明白。
这十几天数学知识部分把人看麻了()

0x00_约数:

更相减损法:\(\gcd (a,b)=\gcd (b,a-b)=\gcd (a,a-b)\)(\(a|b\)等价于\(b\)能整除\(a\))

证明:
\(d\)\(d|a,d|b\)\(d\)属于\(a,b\)的公约数集合。
\(a\)>=\(b\),记\(a=q*b+r\)。因为\(d|a,d|b\),则\(d|(a-b)\)
\((a-b)\)的约数集合完全包含\(d\)。并且\(b\)的约数集合完全包含\(d\)
因此\((b,(a-b))\)的公约数集合完全包含\((a,b)\)的公约数集合。
因此\((b,(a-b))\)的最大公约数也一定为\((a,b)\)的最大公约数。
因此\(\gcd (a,b)=\gcd (b,a-b)\)
\(\gcd (a,b)=\gcd (a,a-b)\)同理。


下面证同理如何证明,同理可证只细写这一次


\(d\)\(d|a,d|b\)\(d\)属于\(a,b\)的公约数集合。
\(a\)>=\(b\),记\(a=q*b+r\)。因为\(d|a,d|b\),则\(d|(a-b)\)
\((a-b)\)的约数集合完全包含\(d\)。并且\(a\)的约数集合完全包含\(d\)
因此\((a,(a-b))\)的公约数集合完全包含\((a,b)\)的公约数集合。
因此\((a,(a-b))\)的最大公约数也一定为\((a,b)\)的最大公约数。
因此\(\gcd (a,b)=\gcd (a,a-b)\)


辗转相除法:\(\gcd(a,b)=\gcd(b,a\mod b)\)

证明:
\(d\)\(d|a,d|b\)\(d\)属于\(a,b\)的公约数集合。
①:
\(a\)>=\(b\),记\(a=q*b+r\)。因为\(d|a,d|b\),则\(d|(q*b)\)\(d|(a-q*b)\)
又因为\(a-q*b\) = \(a \mod b\) = \(r\),因此\(d|(a \mod b)\)\(d|r\)
\(r\)的约数集合完全包含\(d\)。并且\(b\)的约数集合完全包含\(d\)
因此\((r,(a-b))\)的公约数集合完全包含\((a,b)\)的公约数集合。
因此\((r,(a-b))\)的最大公约数也一定为\((a,b)\)的最大公约数。
因此\(\gcd (a,b)=\gcd (b,a \mod b)\)
②:
\(a\)<\(b\)。因此\(a \mod b\)=\(a\)
经过\(\gcd(a,b)=\gcd(b,a\mod b)\)转换后,上述\(a,b\)大小不变交换位置,转证①。


欧拉函数:\(\varphi (n)\)=小于\(n\)且与\(n\)互质的数。(\(a,b\)互质等价与\(\gcd(a,b)\)=\(1\))
\(n\)质因数分解,\(n\)=\(p_{1}^{m_{1}}*p_{2}^{m_{2}}*...*p_{k}^{m_{k}}\)
\(\varphi (n)\)=\(n\)*\(\prod(1-\frac{1}{p_{i}})\)

证明:
容易可知,如果要满足\(gcd(n,b)\)=\(1\),则\(n,b\)不能出现除\(1\)之外的公因子。
我们已经将\(n\)分解为\(n\)=\(p_{1}^{m_{1}}*p_{2}^{m_{2}}*...*p_{k}^{m_{k}}\)的格式。
因此\(n\)的所有可能因子为质因子的所有组合。
我们可以这样想:
\(q \in (1,n)\)
\(p_{i}|q\)的数一共有\(n/p_{i}\)个。
\(p_{i}|q\)\(p_{j}|q\)的数一共有\(n/(p_{i}*p_{j})\)个。
当我们\(n-\frac{n}{p_{1}}-\frac{n}{p_{2}}...-\frac{n}{p_{k}}\)时,筛去了能被\(p_{1},...,p_{k}\)整除的所有数。
但是我们一定会将不少数重复筛去。
为了只筛去一次,所以我们要将重复筛掉的加回去。
当有一个数为\(p_{i}*p_{j}\),它既在\(\frac{n}{p_{i}}\)中筛去,又在\(\frac{n}{p_{j}}\)中筛去,因此我们要加上\(\frac{n}{p_{i}*p_{j}}\),保证\({p_{i}*p_{j}}\)只被筛一次。
当有一个数为\(p_{i}*p_{j}*p_{k}\),它在\(\frac{n}{p_{i}}\)中筛去,在\(\frac{n}{p_{j}}\)中筛去,在\(\frac{n}{p_{k}}\)中筛去,而在\(\frac{n}{p_{i}*p_{j}}\)\(\frac{n}{p_{i}*p_{k}}\)\(\frac{n}{p_{j}*p_{k}}\)中加回去,因此我们要减去一个\(\frac{n}{p_{i}*p_{j}*p_{k}}\),保证筛去\({p_{i}*p_{j}*p_{k}}\)
以此类推,为偶数个质因数要加上\(\frac{n}{q}\),否则减去一个\(\frac{n}{q}\)
因此有公式\(\varphi (n)\)=\(n-\frac{n}{p_{1}}-\frac{n}{p_{2}}...-\frac{n}{p_{k}}+\frac{n}{p_{1}*p_{2}}+\frac{n}{p_{1}*p_{3}}...+\frac{n}{p_{k}*p_{k-1}}-\frac{n}{p_{1}*p_{2}*p_{3}}...\)
将公式整理,得\(\varphi (n)\)=\(n\)*\(\prod(1-\frac{1}{p_{i}})\)
证毕。

欧拉函数的推论:
①若\(p\)为质数,且\(p|n\)\(p^2|n\),则\(\varphi(n)=\varphi(n/p)*p\)

②若\(p\)为质数,且\(p|n\)\(p^2\nmid n\),则\(\varphi(n)=\varphi(n/p)*(p-1)\)

\(\sum_{d|n}\varphi(d)\)=\(n\)

证明:

①:

我们可以知道\(\varphi(n)\)\(\varphi(n/p)\)中包含的整数均只差\(p\)的一倍

因此\(n\)\(n/p\)存在完全相同的质因子。

我们可以对\(\varphi(n)\)\(\varphi(n/p)\)展开,得

\(\varphi(n)\)=\(n*\prod_{i=1}^{k}(1-\frac{1}{p_{i}})\)
\(\varphi(n/p)\)=\((n/p)*\prod_{i=1}^{k}(1-\frac{1}{p_{i}})\)

因此有\(\varphi(n)\)=\(\varphi(n/p)*p\)
证毕。

②:

有积性函数的性质,有

\(\varphi(n)\)=\(\varphi(n/p)*\varphi(p)\)

由于\(p\)为质数,因此\(\varphi(n)\)=\(\varphi(n/p)*(p-1)\)

证毕。

③:

我们设有\(f(n)\)=\(\sum_{d|n}\varphi(d)\)

因此\(f(n)*f(m)=\sum_{d|n}\varphi(d)*\sum_{d|m}\varphi(d)\)

化简,得

\(f(n)*f(m)=\sum_{d|nm}\varphi(d)\)

因此\(f(n)*f(m)\)=\(f(n*m)\)

因此\(f(n)\)为积性函数

我们设存在一个数\(p^k\),由性质①,则有\(\varphi(p^k)\)=\(\varphi(p^{k-1})*p\)

如此化简,得

\(\varphi(p^k)\)=\(\varphi(p)*p^{k-1}\)=\(p^{k}-p^{k-1}\)

因此\(f(p^k)\)=\(\sum_{d|n}\varphi(d)\)=\(\varphi(1)+\varphi(p)+...+\varphi(p^k)\)=\(1+(p-1)+(p^2-p)+...+(p^k-p^{k-1})\)

化简,得

\(f(p^k)\)=\(p^k\),相等的,\(f(n)\)=\(n\),故\(\sum_{d|n}\varphi(n)\)=\(n\)

证毕。


0x10_同余:

欧拉定理:若\(a\)\(p\)互质,则有\(a^{\varphi(p)} \equiv 1 \mod p\)
(简化剩余系:当\(a \mod p\)时,属于\([1,p)\)且与\(p\)互质的所有数{\(p_{1},...,p_{\varphi(p)}\)})
(简化剩余系在模意义下关于乘法运算封闭:若\(c\)\(p\)互质,则有\((c*p_{i})\mod p\)=\(简化剩余系元素\))

证明:
我们可以得到关于\(p\)的简化剩余系{\(p_{1},...,p_{\varphi(p)}\)}。
我们知道简化剩余系在模意义下关于乘法运算封闭。
我们假设有\(a*p_{i}\equiv (a*p_{j}) \mod p,p_{i}\)!=\(p_{j}\)
我们记\(a*p_{i}\)=\(q*p+r\),所以\(a*p_{j}\)=\(q'*p+r\)
又因为关于\(p\)的简化剩余系小于\(p\)
因此\(p_{i}\in [1,p)\),因为\(a*p_{i}与a*p_{j}\)分别为\(p_{i},p_{j}\)的倍数。因此\(p_{i}=a*p_{i}\mod p\)\(p_{j}=a*p_{j}\mod p\)
所以\(p_{i}\)==\(p_{j}\),所以假设不成立。因此对于每一个\(a*p_{i}\)对每一个简化剩余系的集合映射是一 一对应的。
因此\((a*p_{1})*(a*p_{2})*...*(a*p_{\varphi(p)})\equiv p_{1}*p_{2}*...*p_{\varphi(p)} \mod p\)
\(a^{\varphi(p)}*p_{1}*p_{2}*...*p_{\varphi(p)}\equiv p_{1}*p_{2}*...*p_{\varphi(p)} \mod p\)
因此\(a^{\varphi(p)}\equiv 1 \mod p\)
证毕。


费马小定理:若\(p\)为质数,则\(a^{p}\equiv a \mod p\)

证明:
有欧拉定理,我们可以得,\(a^{p-1}\equiv 1 \mod p\)(因为\(\varphi(p)\)=\(p-1\)
两边同时乘\(a\),得费马小定理。
证毕。


欧拉定理推论:若\(a,p\)互质,对于任意\(b\),有\(a^b \equiv a^{b\mod\varphi(p)} \mod p\)

证明:
由欧拉定理,有\(a^{\varphi(p)}\equiv 1 \mod p\)
我们记\(b=q*\varphi(p)+r\)
因此,\(a^{b}=a^{q*\varphi(p)+r}\)
\((a^{\varphi(p)})^q*a^r=a^b\)\((a^{\varphi(p)})^q*a^r \equiv (1)^q*a^r\equiv a^r \mod p\)
因此\(a^b \equiv a^{b\mod\varphi(p)} \mod p\)
证毕。


裴蜀定理:对于任意\(a,b\),存在整数解\(x,y\),使得\(a*x+b*y\)=\(\gcd(a,b)\)
这大佬证的实在是太强了,我觉得直接贴他的好了。
原链:https://zhuanlan.zhihu.com/p/35727703

证明:


中国剩余定理:若\(m_{1}...m_{n}\)两两互质,存在方程
\(\left\{\begin{matrix} x\equiv a_{1} \mod m_{1}\\ x\equiv a_{2} \mod m_{2}\\ ...\\ x\equiv a_{n} \mod m_{n} \end{matrix}\right.\)
我们记\(m\)=\(\prod_{i=1}^{n} m_{i}\)\(M_{i}\)=\(\frac{m}{m_{i}}\)
对于每一个\(M_{i}\),存在\(t_{i}\)\(M_{i}*t_{i}\equiv 1 \mod m_{i}\)
其解为\(x=\sum_{i=1}^{n} a_{i}*M_{i}*t_{i}\)

证明:
因为有\(M_{i}*t_{i}\equiv 1 \mod m_{i}\)
因此\(a_{i}*M_{i}*t_{i}\equiv a_{i} \mod m_{i}\)
又因为一个\(M_{i}\)才会不包含\(m_{i}\)因子,其余\(M_{j}\)均包含因子\(m_{i}\)
故只有\(M_{i} \mod m_{i}\)!=\(0\),对于\(i\)!=\(j\),均有\(M_{j} \mod m_{i}\)=\(0\)
因此\(a_{i}*M_{i}*t_{i}\)是关于第\(i\)个方程的解。因此总方程的解为\(x=\sum_{i=1}^{n} a_{i}*M_{i}*t_{i}\)
证毕。
:此解不一定为最小解。


0x20_组合数学
卢卡斯定理:若\(p\)为质数,\(C_{n}^{m} \equiv C_{n \mod p}^{m \mod p} *C_{\frac{n}{p}}^{\frac{m}{p}}\mod p\)

证明:
我们首先对二项式\((1+x)^p\)进行分解。
由二项式定理,得\((1+x)^p\)=\(C_{p}^{0}*x^0+C_{p}^{1}*x^1+...+C_{p}^{p}*x^p\)

可以知道每一个\(C_{p}^{i}\),在当\(i\in [1,p-1]\)时,其存在一个\(p\)的因子。

因此可得\(C_{p}^{0}*x^0+C_{p}^{1}*x^1+...+C_{p}^{p}*x^p \equiv (C_{p}^{0}*x^0+C_{p}^{p}*x^p) \mod p\)

也就是\((1+x)^p \equiv (1+x^p) \mod p\)

我们将\(m,n\)转化为另一种形态,得

\(m\)=\(m_{0}*p^{0}+m_{1}*p^1+m_{2}*p^2+...+m_{k}*p^k\)

\(n\)=\(n_{0}*p^{0}+n_{1}*p^1+n_{2}*p^2+...+n_{k}*p^k\)

因此\((1+x)^n\)=\((1+x)^{n_{0}}*((1+x)^{n_{1}})^{p^{1}}...*((1+x)^{n_{k}})^{p^{k}}\)

化简,得

\((1+x)^n\equiv (1+x^{n_{0}})*(1+x^{n_{1}})^{p^{1}}...*(1+x^{n_{k}})^{p^{k}} \mod p\)

对于计算\(C_{n}^{m}\)可以看做计算\((1+x)^n\)中关于\(x^m\)的系数

所以有\(C_{n}^{m}\equiv C_{n_{k}}^{m_{k}}*C_{n_{k-1}}^{m_{k-1}}*...*C_{n_{0}}^{m_{0}} \mod p\)

\(C_{n_{k}}^{m_{k}}*C_{n_{k-1}}^{m_{k-1}}*...*C_{n_{0}}^{m_{0}}\)意为对于每一个\(n_{i}\)最后总共能够组成\(x^m\)的所有组合的可能。

将上式化简,得

\(C_{n}^{m} \equiv C_{n \mod p}^{m \mod p} *C_{\frac{n}{p}}^{\frac{m}{p}}\mod p\)

证毕

posted on 2021-11-08 22:22  快晴  阅读(79)  评论(0编辑  收藏  举报