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

  • 相关阅读:
    Hibernate缓存之初探
    Oracle、MySql、SQLServer 数据分页查询
    LISTAGG WITHIN GROUP函数使用方法
    exp/imp密码特殊字符处理
    Oracle动态授权用户权限
    Centos7二进制安装Mysql8.0.14
    Zabbix监控Windows网卡流量
    Zabbix监控通过jvm插件监控Tomcat
    Linux安装RabbitMQ3.73开启插件shovel并做配置
    yum安装指定路径和配置文件出错
  • 原文地址:https://www.cnblogs.com/1024th/p/11349355.html
Copyright © 2011-2022 走看看