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}$,于是定理得证

  • 相关阅读:
    【算法学习笔记】76.DFS 回溯检测 SJTU OJ 1229 mine
    【算法学习笔记】75. 动态规划 棋盘型 期望计算 1390 畅畅的牙签盒(改)
    【算法学习笔记】74. 枚举 状态压缩 填充方案 SJTU OJ 1391 畅畅的牙签袋(改)
    【算法学习笔记】73.数学规律题 SJTU OJ 1058 小M的机器人
    【算法学习笔记】72.LCS 最大公公子序列 动态规划 SJTU OJ 1065 小M的生物实验1
    【算法学习笔记】71.动态规划 双重条件 SJTU OJ 1124 我把助教团的平均智商拉低了
    【算法学习笔记】70.回文序列 动态规划 SJTU OJ 1066 小M家的牛们
    【算法学习笔记】69. 枚举法 字典序处理 SJTU OJ 1047 The Clocks
    【算法学习笔记】68.枚举 SJTU OJ 1272 写数游戏
    【算法学习笔记】67.状态压缩 DP SJTU OJ 1383 畅畅的牙签袋
  • 原文地址:https://www.cnblogs.com/zhangleo/p/13281081.html
Copyright © 2011-2022 走看看