学习随笔——威尔逊定理证明
今天看了网络上很多威尔逊定理的证明,深有感触,决定总结如下,以期让那些可能没有深入接触过初等数论的学习者也能没有阻碍地看完这一篇证明。
现陈述定理如下:
当且仅当P为素数时,满足(P-1)!≡ -1 mod(P)
证明如下:
(P-1)!≡ -1 mod(P)可化简为(P-1)!+1≡ 0 mod(P),这对我们接下来必要性的证明大有裨益。
必要性:
若P可整除(P-1)!+1,且P不是素数,则易知P至少可分解为两个质因数a,b。这里为把a和b的范围确定到(2,P-1),我们进行讨论。边界条件也很好确定,即解不等式(P-1)2<P,易知满足条件的正整数只有1和2。所以不存在合数可分解出大于自身的素因数。我们可将(P-1)!看成一次遍历过程,(P-1)!=∏Xi,其中Xi=i,易知必存在i,j满足Xi=a,Xj=b。也就可得到P整除(P-1)!。然而又知P不可整除1,所以综合来看P不可整除(P-1)!+1,形成矛盾,于是P为素数得证。
充分性:
这里证明两个性质,对本证明有帮助,如果读者已明了这两个结论可跳过。
性质一:如果一个数D可分解为a,b两个数,那么D%p=((a%p)*(b%p))%p(p为整数)。
证明如下:设a=kp+q,b=mp+r,易知a%p=q,b%p=r,D=ab=(kp+q)(mp+r)=kmp2+(kr+mq)p+qr。易知qr%p为D除以p的余数,结论得证。
性质二:当取a在(2,p-2)范围内,{2a,3a,...(p-2)a},这个集合内的每个元素和p相除所得余数都不相同。
证明如下:反证存在ka%p=ma%p,这里设ka=lp+q,ma=cp+q。同时ka=(k/m)*ma=(k/m*c)p+(k/m)q,这里k,m,q皆不可整除p,(k/m)q无法化简,易知q与(k/m)q不同,形成矛盾,结论得证。
充分性正式证明如下:
我们观察当P=5时的情况,(P-1)!=(5-1)!=4!=1*2*3*4,其中2*3≡6≡1(mod5),1*4≡4≡-1(mod5)。易知这里(P-1)!%5=-1*1=-1。于是我们的思路就是在集合{2,3,...(p-2)}里找到两两配对的数乘积与P相除后余数为1。即设a,b是属于{2,3,...(P-2)}集合的两个不同元素,存在合适的ab%P=1。为什么在此处排除了1和P-1?因为易知1*(P-1)%P=-1。
a的存在性和唯一性证明:
我们的思路也很简单,设任意元素a属于该集合,将这个集合里的每个元素都乘以a,得到新集合{2a,3a,...(p-2)a}。根据上述性质可知该集合的每一个元素与P相除后所得余数都不相同。同时P的余数取回范围为[1,P-1],这个集合也有P-1个元素,所以必存在ab%P=1,结论得证。
b的存在性和唯一性证明:
我们设ab即为我们要找的“有效配对”(ab%P=1),现在需要再证明b不会为1、P-1或者a。当b=1时,ab=a,易知a%P不等于1(a不等于1);当b=P-1时,即ab=(P-1)a=Pa-a,易知整除不会等于1;当b=a时,ab=a2=P+1,也即P=a2-1=(a+1)(a-1),这与P的素数性质矛盾。同时为防止一个b对应多个a的情况,我们可利用上述性质证明a和b确实是一 一对应关系。
综上所述,充分性和必要性都得到证明,该定理得证。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报