zoukankan      html  css  js  c++  java
  • 欧拉定理及扩展(附超易懂证明)

    欧拉定理

    (gcd(a,m)=1),则满足(a^{varphi (m)} equiv 1 pmod m)

    证明

    ([1,m))内与(m)互质的数为数列({b_n}={b_1,b_2,b_3,cdots,b_{varphi (m)}})

    因为(a,m)互质且(b_i,m)互质,所以数列({A_n}={ab_1,ab_2,ab_3,cdots,ab_{varphi(m)}})中每个数都与(m)互质,且两两不同。

    同时,由(gcd(ab_i,m)=1)可得(gcd(ab_i mod m,m)=1),即每个(A_i)除以(m)的余数都与(m)互质,且余数两两不同。

    可以用反证法推出“余数两两不同”。假设存在(ab_i equiv ab_j pmod m),那么(ab_i-ab_j=km (k in mathbb{Z})),即(a(b_i-b_j)=km)。由于(a)(m)互质,那么只能是(m mid (b_i-b_j)),即(b_i equiv b_j pmod m)。这与(1 leq b_i,b_j < m)(b_i eq b_j)的题设相违背,因此假设不成立。

    所以({A_n})中的每个数一定与({b_n})中的一个数同余,且一一对应。

    所以(a^{varphi (m)}prod_{i=1}^{varphi (m)}b_i equiv prod_{i=1}^{varphi (m)}ab_i equiv prod_{i=1}^{varphi (m)}b_i pmod m)

    所以(m mid a^{varphi (m)}prod_{i=1}^{varphi (m)}b_i-prod_{i=1}^{varphi (m)}b_i)

    (m mid (a^{varphi (m)}-1)prod_{i=1}^{varphi (m)}b_i)

    又因为(gcd(m,prod_{i=1}^{varphi (m)}b_i)=1)

    所以(m mid a^{varphi (m)}-1)

    (a^{varphi (m)} equiv 1 pmod m)

    费马小定理

    (p)为质数,则(a^{p-1} equiv 1 pmod p)

    证明:因为(p)为质数时,(varphi(p)=p-1)

    扩展欧拉定理

    扩展到不要求互质。

    [a^c equiv egin{cases} a^{c mod varphi(m)} &gcd(a,m)=1 \ a^c &gcd(a,m) eq 1,c<varphi(m) \ a^{left(c mod varphi(m) ight)+varphi(m)} &gcd(a,m) eq 1,c geq varphi(m) end{cases} pmod m ]

    证明

    case 1

    (gcd(a,m)=1)时,由欧拉定理知(a^{varphi (m)} equiv 1 pmod m)

    我们可以把指数(c)拆成(k imes varphi(m) + left(c mod varphi(m) ight)),那么(a^c=left(a^{varphi(m)} ight)^k imes a^{c mod varphi(m)}),再取模,就得到

    [a^c equiv a^{c mod varphi(m)} pmod m ]

    case 2

    (gcd(a,m) eq 1)(c < varphi(m))时,

    [a^c equiv a^c pmod m ]

    (无需证明)

    case 3

    (gcd(a,m) eq 1)(cgeq varphi(m))时,

    [a^cequiv a^{(c mod varphi(m))+varphi(m)} pmod m ]

    证明:

    1.转化

    要证明上式,只需证(a)的任意一个质因子(p_i)满足({p_i}^c equiv {p_i}^{(c mod varphi(m))+varphi(m)} pmod{m})

    1.1 证明转化的正确性

    如果上式成立,设(a)质因数分解的结果为(a=p_1^{r_1}p_2^{r_2}p_3^{r_3}cdots),其中(p_i)为质因数,(r_i)为其对应的指数

    根据同余式可乘可推出(({p_i}^c)^{r_i} equiv ( {p_i}^{(c mod varphi(m))+varphi(m)} )^{r_i} pmod{m})

    进而((p_1^{r_1}p_2^{r_2}p_3^{r_3}cdots)^{c} equiv (p_1^{r_1}p_2^{r_2}p_3^{r_3}cdots)^{(c mod varphi(m))+varphi(m)} pmod{m})

    发现这就是(a^c equiv a^{left(c mod varphi(m) ight)+varphi(m)} pmod m)

    2.证明转化后的式子

    那么现在要证明的东西已经转化,考虑如何证得({p_i}^c equiv {p_i}^{(c mod varphi(m))+varphi(m)} pmod{m})(以下简称(p_i)(p)

    2.1 若(m,p)互质

    问题转化为case 1的情况。为了防止你翻上去,我再推一遍:

    (gcd(m,p)=1 Longrightarrow p^{varphi(m)} equiv 1 pmod m)(欧拉定理)

    可以将指数(c)拆成(k imes varphi(m) + left(c mod varphi(m) ight)),那么(p^c=(p^{varphi(m)})^k imes p^{c mod varphi(m)})

    再对(m)取模,就得到(p^c equiv (p^{varphi(m)})^k imes p^{c mod varphi(m)} equiv 1^k imes p^{c mod varphi(m)} equiv p^{c mod varphi(m)} equiv p^{(c mod varphi(m))+varphi(m)} pmod m)

    2.2 若(p,m)不互质

    由于(p)为质数,则(m)必定(geq 2p)

    (m=s imes p^r),其中(r=lfloorlog_p{m} floor)(看作把(m)质因数分解后含有(p^r),剩下的都在(s)里,剩下的(s)不含因数(p)),那么(gcd(s,p^r)=gcd(s,p)=1)

    根据欧拉定理(p^{varphi(s)} equiv 1 pmod s)

    因为(s,p^r)互质,所以(varphi(m)=varphi(s) imes varphi(p^r))(欧拉函数是积性函数),即(varphi(s) mid varphi(m))

    结合欧拉定理(p^{varphi(s)} equiv 1 pmod{s})可得

    (p^{varphi(m)} = (p^{varphi(s)})^{varphi(p^r)} equiv 1^{varphi(p^r)} = 1 pmod{s})

    同时乘以(q^r)得到

    (p^{r+varphi(m)} equiv p^r pmod{s imes p^r})

    (m=s imes p^r),则(p^{r+varphi(m)} equiv p^r pmod{m})

    题设条件(cgeq varphi(m)),显然(varphi(m)geq r)

    本蒟蒻觉得这一点也不显然,花了好久才证明出(varphi(m)geq r)……QAQ
    下面附上我的证明方法(我觉得应该有更简单的方法)

    首先(varphi(m)=varphi(s) imes varphi(q^r) geq varphi(p^r))(等号在(s=1,2)时取到)

    (varphi(p^r)=p^r-p^{r-1}=(p-1) imes p^{r-1} geq p^{r-1})(pgeq 2),等号在(p=2)时取到)

    数学归纳法证(p^{r-1}geq r)(r=1)时显然成立,假设(r=i)(p^{i-1}geq i)成立,可推知(p^{i}=p imes p^{i-1}geq 2 imes p^{i-1}=p^{i-1}+p^{i-1}geq p^{i-1}+1=i+1)成立,因此(p^{r-1}geq r)对任意的(p,rin mathbb{Z},pgeq 2,rgeq 1)成立

    把上面所有的不等号串起来,就是(varphi(m)geq r)

    那么(p^c=p^{c-r} imes p^r equiv p^{c-r} imes p^{r+varphi(m)}=p^{varphi(m)+c} pmod m)

    (f(x)=xmod m;(xgeq varphi(m))),上式表明:对于任意的正整数(x)(f(x+varphi(m))=f(x))。反过来(f(x)=f(x-varphi(m))),但要注意定义域:此时(x)要满足(x-varphi(m)geq varphi(m)),即(xgeq 2varphi(m))

    如果要计算(f(c)),可以递推上面那个式子,每次让(c-=varphi(m)),但只有(cgeq 2varphi(m))时才可以这样操作。

    我们知道,如果递推条件改成(cgeq varphi(m)),显然最后递推得到的值为(cmod varphi(m))。但现在条件是(cgeq 2varphi(m)),发现递推条件相差为(varphi(m))(cgeq 2varphi(m))(cgeq varphi(m))少减一次(varphi(m))。所以只需把这一次(varphi(m))加回来就好了,即(f(c)=f((cmod varphi(m))+varphi(m))),也就是

    [a^cequiv a^{(c mod varphi(m))+varphi(m)} pmod m ]

    用途

    再也不用担心指数爆炸了!!指数也可以取模了

    题目

    BZOJ3884(推公式)

    BZOJ4869(+线段树)


    参考CSDN博主「CaptainHarryChen」的证明思路。十分感谢。

    原文链接:https://blog.csdn.net/can919/article/details/82318115

  • 相关阅读:
    PAT Basic 1077 互评成绩计算 (20 分)
    PAT Basic 1055 集体照 (25 分)
    PAT Basic 1059 C语言竞赛 (20 分)
    PAT Basic 1072 开学寄语 (20 分)
    PAT Basic 1049 数列的片段和 (20 分)
    蓝桥杯BASIC-13 数列排序
    蓝桥杯入门——3.序列求和
    蓝桥杯入门——2.圆的面积
    蓝桥杯入门——1.Fibonacci数列
    树的总结(遍历,BST,AVL原型,堆,练习题)
  • 原文地址:https://www.cnblogs.com/1024th/p/11349355.html
Copyright © 2011-2022 走看看