zoukankan      html  css  js  c++  java
  • 数论有关定理及其证明

    裴蜀定理:

    内容:若$gcd(a,b)=d$,则一定存在$m,nin Z$,使$ma+nb=d$且$d$为$ma+nb$的最小正值(狭义)

    证明:

    令$d=gcd(a,b)$,则对任意$m,nin Z$,有$d|am+bn$

    设$am+bn$的最小正值为$s$,则令$q=[frac{a}{s}],r=a$ $mod$ $s=a-q(am+bn)=a(1-qm)+b(-qn)$

    考虑到$r=a$ $mod$ $s$,于是$0leq r<s$

    那么r也是$am+bn$的一个表达,由于s是最小正值,于是$r=0$(如果r不为0,那么r就是最小正值了)

    于是$s|a$,同理$s|b$,于是s是a和b的公约数,于是$sgeq d$

    考虑$d|a,d|b,s=am+bn$,则$d|s$,于是$dgeq s$

    那么d=s

    整数的唯一分解定理:

    定理:对任意正整数$Mgeq2$,M可以表示成唯一的一组$p_{1},p_{2}...p_{n}$的表达$M=p_{1}^{k_{1}}p_{2}^{k_{2}}...p_{n}^{k_{n}}$($p_{1}<p_{2}<...<p_{n}$)

    我们采用反证法证之:

    引理:若质数p|ab,则p|a或p|b

    证明:若p|a则定理得证,若p不是a的约数,则a,p互质(显然)

    于是根据裴蜀定理,存在$m,nin Z$使$ma+np=1$,于是$b=b(ma+nb)=mab+nbp$

    考虑$p|ab$,则上式右侧能被$p$整除,于是左侧也能被$p$整除,即$p|b$

    设$M=p_{1}^{k_{1}}p_{2}^{k_{2}}...p_{n}^{k_{n}}=q_{1}^{a_{1}}q_{2}^{a_{2}}...q_{n}^{a_{n}}$是最小可以用两种方法表示的正整数

    那么有$p_{1}|q_{1}^{k_{1}}...q_{n}^{k_{n}}$

    结合上述引理,有$p_{1}|q_{1}$或$p_{1}|q_{2}$...或$p_{1}|q_{n}$

    那么为了保证$q$均为质数,不妨令$p_{1}|q_{1}$(不失一般性)则有$p_{1}=q_{1}$

    不妨令$a_{1}leq _{1}$,则构造$M^{'}=p_{1}^{a_{1}-k_{1}}p_{2}^{k_{2}}...p_{n}^{k_{n}}=q_{2}^{a_{2}}...q_{n}^{a_{n}}$

    结合上述分析,有$p_{1}=q_{2}~q_{n}$中的一个

    但是显然这与$q_{1}...q_{n}$互不相同矛盾,于是必须有$a_{1}=k_{1}$

    那么我可以构造$M^{"}=p_{2}^{k_{2}}...p_{n}^{k_{n}}=q_{2}^{a_{2}}...q_{n}^{a_{n}}<M$,这就是找到了一个比$M$更小的能用两种方法表示的正整数,从而与假设矛盾

    记$M=p_{1}^{k_{1}}...p_{n}^{k_{n}}$

    约数个数公式:M的约数个数$d(M)=pi_{i=1}^{n}(k_{i}+1)$

    约数和公式:M的约数和$σ(M)=pi_{i=1}^{n}(sum_{j=0}^{k_{i}}p_{i}^{j})$

    等比数列分治求和公式:$sum_{i=1}^{n}p^{i}=sum_{i=1}^{frac{n}{2}}p_{i}+p^{frac{n}{2}}sum_{i=1}^{frac{n}{2}}p_{i}$

    欧拉函数的性质:

    $phi(p)=p-1$(p为质数)

    令$M=pi_{i=1}^{n}p_{i}^{k_{i}}$,则$phi(M)=pi_{i=1}^{n}(p_{i}-1)*p_{i}^{k_{i}-1}$

    丢番图题解:

    $frac{1}{x}+frac{1}{y}=frac{1}{n}$

    移项通分:$n(x+y)=xy$,再整理:$x=frac{ny}{y-n}$

    令$t=y-n$,于是$y=t+n$,即$x=frac{n(t+n)}{t}$,也即$x=n+frac{n^{2}}{t}$

    于是求出$n^{2}$的约数个数即可

    模线性方程问题

    $axequiv1$(mod b)

    gcd问题:

    令$d=gcd(a,b)$,记$a=kb+m$

    显然$d|a,d|b$,则$d|m$,也即$d|m,d|b$,也即$d|gcd(b,m)$

    设$d^{'}=gcd(b,m)$,则$d^{'}|b,d^{'}|m$,也即$d^{'}|a$

    注意到$d$是$a$与$b$的最大公约数,于是$d^{'}|d$

    于是$d=d^{'}$(证明中隐含了一个内容:两个数的最大公约数能被这两个数所有的公约数整除)

    ex_gcd问题

    $axequiv 1$(mod b)即$ax+by=1$

    这里我们知道a,b互质,于是原方程即为$ax+by=gcd(a,b)$

    我们知道$gcd(a,b)=gcd(b,a$ $mod$ $b)$

    于是令$a_{1}=b,b_{1}=a$ $mod $ $b$,辗转一次即变为$a_{1}x_{1}+b_{1}y_{1}=gcd(a_{1},b_{1})$

    以此类推,直至$b_{n}=0$,此时方程化为$a_{n}x_{n}=gcd(a_{n},0)$

    显然取$x_{n}=1$即可($gcd(a_{n},0)$当然是$a_{n}$,因为$frac{0}{a_{n}}=0$不是吗...)

    那在这个方程中其实我可以取$y_{n}$为任意值,但是为了计算简便我们一般取$y_{n}=0$(不要作死地去取y为别的值,因为指不定后面的计算就给你整出点啥意外情况)

    接下来讨论怎么根据已有的$x_{k},y_{k}$反求$x_{k-1},y_{k-1}$

    我们已知$a_{k}x_{k}+b_{k}y_{k}=gcd(a_{k},b_{k})$

    但其实右侧的值始终为$1$

    也就是可以写成这样的形式:$a_{k-1}x_{k-1}+b_{k-1}y_{k-1}=a_{k}x_{k}+b_{k}y_{k}$

    注意到前后$a$和$b$的对应关系,也即:

    $a_{k-1}x_{k-1}+b_{k-1}y_{k-1}=b_{k-1}x_{k}+(a$ $mod$ $b)y_{k}$

    注意到$a$ $mod$ $b$等价于$a-[frac{a}{b}]b$

    于是上式即为:$a_{k-1}x_{k-1}+b_{k-1}y_{k-1}=b_{k-1}x_{k}+(a_{k-1}-[frac{a_{k-1}}{b_{k-1}}]b_{k-1})y_{k}$

    展开右侧,既得$a_{k-1}x_{k-1}+b_{k-1}y_{k-1}=a_{k-1}y_{k}+b_{k-1}(x_{k}-[frac{a_{k-1}}{b_{k-1}}]y_{k}$

    对应相等,于是$x_{k-1}=y_{k},y_{k-1}=x_{k}-[frac{a_{k-1}}{b_{k-1}}]y_{k}$

    我们也就找出了这组对应关系

     一般线性同余方程的求解:

    考虑方程$ax+by=c$,其中$gcd(a,b)|c$

    那么首先我们可以在两侧同时除掉一个$gcd(a,b)$,得到一个新的方程$a^{'}x+b^{'}y=c^{'}$,其中$gcd(a^{'},b^{'})=1$,这两个方程显然是等价的

    那么我们不妨先求解方程$a^{'}x+b^{'}y=1$,这样的话只需要对求出的$x,y$同时乘c就是原方程的解了

     逆元的线性递推

    设$p$为质数,我们想求$a$对$p$的逆元

    我们构造一个$p$的拆分$p=ka+b$,要求(1<a<p,b<a)

    在两侧同时乘$a$和$b$的逆元$a^{-1},b^{-1}$

    于是得到了$kb^{-1}+a^{-1}equiv 0($ $mod$ $p)$

    移项:$a^{-1}equiv -kb^{-1}$

    代入得:$a^{-1}equiv [frac{p}{a}] (p$ $mod$ $a)^{-1}$

     注意到$p$ $mod$ $a<a$,也即后面的逆元是已经求出来的,这样我们就可以从前向后递推了

    中国剩余定理:

    考虑模线性方程组$x_{i}equiv a_{i}($ $mod$ $p_{i}),i=1,2...n$

    令$M=pi_{i=1}^{n}p_{i}$,$M_{i}=frac{M}{p_{i}}$

    求解$M_{i}$对$m_{i}$的逆元$M_{i}^{-1}=x_{i}$

    则最终原方程的通解即为$X=sum_{i=1}^{n}a_{i}x_{i}M_{i}+tM(tin Z)$

    接下来给出证明:

    首先我们证明这个解的正确性(其实正确性好证,举一个方程为例代入即可)

    令$X=sum_{i=1}^{n}a_{i}x_{i}M_{i}$

    代入任意一个方程$j$,对$i!=j$,都有$a_{i}x_{i}M_{i}equiv 0($ $mod$ $p_{j})$

    对$i=j$,根据上述求解过程知:$x_{i}M_{i}equiv 1($ $mod$ $p_{i})$

    于是$a_{i}x_{i}M_{i}equiv a_{i}($ $mod$ $p_{i})$

    即$X=sum_{i=1}^{n}a_{i}x_{i}M_{i}equiv a_{i}($ $mod$ $p_{j})$

    这也就证明了这个解的正确性

    接下来证明这组解的唯一性:

    令$x_{1},x_{2}$是上述方程组的两个解,则对任意$i=1,2...n$,有$x_{1}-x_{2}equiv 0($ $mod$ $p_{i})$

    考虑$p_{1},p_{2},...p_{n}$互质,所以$M|x_{1}-x_{2}$

    也即任意两个解之间的差距一定是$M$的整数倍

    那么上述通解也就是合理且唯一的

    降幂公式:$a^{m}equiv$ $a^{m mod phi(p)+phi(p)}($ $mod$ $p)$

    bzoj 3884

    记$f(p)=2^{2^{2^{2}}}...$ $mod$ $p$

    由降幂公式:$f(p)=2^{2^{2^{2}}mod phi(p)+phi(p)}$ $mod$ $p$

    注意到上面仍是无穷,所以$f(p)=2^{f(phi(p))+phi(p)}$ $mod$ $p$

    于是递归求解即可,边界为$f(1)=0$

    RSA算法的证明:

    任意选择两个质数$p,q$,并构造$n_{1}=pq$,$n_{2}=(p-1)(q-1)$,则对于$∀min(1,n_{1})$,对于所有$ein[1,n_{2})$且e与n2互质,令$c=m^{e}$ $mod$ $n_{1}$, 取$din[1,n_{2})$且要求$ed$ $mod$ $n_{2}equiv1$,则$c^{d}$ $mod$ $n_{1}equiv m$

    其实要认识到一点:由于$p,q$是质数,所以$phi(n_{1})=n_{2}$

    结合上面的表达式:$c=m^{e}$,于是$c^{d}=m^{de}$

    考虑到$deequiv 1 ($ $mod$ $n_{2})$,$n_{2}=phi(n_{1})$

    于是$m^{de}equiv m^{de mod phi(n_{1})}equiv m($ $mod$ $n_{1})$

    也就得出了结果

    卢卡斯定理:若$p$为质数,则$C^{m}_{n}equiv C^{[frac{m}{p}]}_{[frac{n}{p}]}C^{mmodp}_{nmodp}$ $($ $mod$ $p)$       

    证明:显然$C_{p}^{m}equiv 0($ $mod$ $p)$

    我们用二项式定理来证明:令$n=sp+q$

    则$(1+x)^{n}=(1+x)^{sp+q}=(1+x)^{sp}(1+x)^{q}=[(1+x)^{p}]^{s}(1+x)^{q}$

    在模$p$意义下,$(1+x)^{p}=1+x^{p}$(根据我们最开始证明的等式,二项式展开即可)

    于是我们有$(1+x)^{n}=(1+x^{p})^{s}(1+x)^{q}=sum_{i=0}^{s}C_{s}^{i}x^{ip}sum_{j=0}^{q}C_{q}^{j}x^{j}$

    考虑$x^{tp+m}$项的系数,根据最初的表达式,其系数为$C_{sp+q}^{tp+m}$

    根据推导出的表达式,显然只能取$i=t,j=m$,于是其系数为$C_{s}^{t}C_{q}^{m}$

    也即$C_{sp+q}^{tp+m}equiv C_{s}^{t}C_{q}^{m}$,于是定理得证

  • 相关阅读:
    面对对象1
    php数组
    操作字符串,正则表达式
    php运算符and函数
    sql 数学函数and字符串函数and日期函数
    高级查询
    简单查询
    php环境搭建
    第三阶段项目错误记录
    thinkphp获取刚添加数据的主键值
  • 原文地址:https://www.cnblogs.com/zhangleo/p/13281081.html
Copyright © 2011-2022 走看看