zoukankan      html  css  js  c++  java
  • 降幂公式的一个证明

    很早就知道了$A^{B}equiv A^{B mod varphi(C) + varphi(C)} (mod C) if B>=varphi(C)$  然而一直不知道为什么,现在来证明一下:

     

    首先我们来研究一下数列$a^0 a^1 a^2 cdots a^n (mod m)$有什么规律。

    当a和m互质的时候:

    1.根据欧拉定理$a^{varphi(m)}equiv 1 (mod m)$ 可以知道这个数列肯定是周期的。且最小周期$T<=varphi(m)$.

    2.最小周期$T$一定是$varphi(m)$的约数. 证明:

    假设$x<y$  且  $a^x equiv 1 a^y equiv 1 (mod m)$ 

    那么必定有$a^{y-x} equiv 1 (mod m)$

    像欧几里得算法一样迭代下去可以得到$a^{gcd(x,y)} equiv 1 (mod m)$.

    $a^T equiv 1 a^{varphi(m)} equiv 1 (mod m) ightarrow a^{gcd(T,varphi(m))} equiv 1 (mod m)$

    T是最小周期,所以$T<=gcd(T,varphi(m))$,所以$T=gcd(T,varphi(m))$,所以$T$是$varphi(m)$的约数。  证毕。

    这种情况下$A^{B}equiv A^{B mod varphi(C) + varphi(C)} (mod C) if B>=varphi(C)$ 显然成立。

     

    当a和m不互质的时候:

    1.我们可以证明该数列除掉前面有限的几项之后,就开始周期重复了.

    证明:

    只要证明当x足够大时,$a^{x+T} equiv a^{x} (mod m)$ <--> $a^{'}*a^{x-1+T} equiv a^{'}*a^{x-1} (mod m^{'})$。

    其中$a^{'}=frac{a}{gcd(a,m)} m^{'}=frac{m}{gcd(a,m)}$

    即可以不断拿出一个a,来和m约分,直到$a^{'}$和$m^{'}$互质, 于是两边的$a^{'}$可以约去最后得到$a^{T} equiv 1 (mod m^{'})$

    取$T = varphi(m')$显然成立。 由于$varphi(m)$ 是$varphi(m')$的倍数,那么取$T = varphi(m)$也成立。

    因此当x足够大的时候有$a^{x+varphi(m)} equiv a^{x} (mod m)$ 也就是说该数列除掉前面有限的几项之后,就开始周期重复了。

    那么,x需要多大才满足这个性质呢?假设x至少要大于等于k才满足这个性质,显然k 取决于a和m能约分多少次。由于每次约分至少除以2,所以k是非常小的。

    容易证明$k<varphi(m)$ 所以我们的降幂公式就是正确的。

    ps: 另外一个博客的证明:http://blog.csdn.net/aosakixuan/article/details/51439078

  • 相关阅读:
    Convert MSTest to Nunit
    ASP.NET MVC RenderPartial to String
    RailsCasts批量下载地址之Ruby代码
    合并CSS和JavaScript(转载)
    删除Windows Service
    WCF和IIS宿主的ASP.NET 共享会话
    远程桌面常用快捷键
    ColdFusion 9 Installation on IIS7
    Ruby正则表达式实践非贪婪量词
    发布时和调试时使用不同的JS
  • 原文地址:https://www.cnblogs.com/vb4896/p/5938791.html
Copyright © 2011-2022 走看看