Processing math: 100%

威尔逊定理小讲解

考虑作者太懒了,博客里面的同余符号都用等号代替 qwq

威尔逊定理

威尔逊定理大概是这么个东西:

(p1)!=1(mod  p)

其中 p 当然是质数辣~

Proof

然后我们考虑证明?

首先:

p1=1(mod  p)

那么我们只需要证明 (p2)!=1(mod  p) 就好了...

也就是说,除去 1 后,如果 2,3,...,p2 能够两两配对,且每对数乘积 模 p 后为 1 的话,威尔逊定理就成立了,然后我们考虑这其实就是对于 2,3,...,p2 去找 模 p 意义下的逆元啊...

然后考虑一下二次剩余里面的衍生芝士我们可以知道对于 x2=1 只有两个解(1,p-1),而这两个数已经被我们安排掉了,也就是说 2,3,...,p2不存在某个数的逆元是自己本身...

然后我们还知道逆元有唯一性互反性,于是乎这些数自然是一一对应的辣~

证毕!

Application

这个...显然可以用在阶乘求解上?

但是用途不广...可能可以用来优化快速阶乘? XD

我们考虑这个式子已经成立了:

(p1)!=1(mod  p)

那么我们现在要求的是:

n! (mod  p)

然后我们考虑威尔逊定理能怎么用进去...

(现在我们不考虑 n=p1p2 的极端情况,n=p1 时答案为 p1n=p2 时 答案为 1 ,可特判)

首先:

n!·((n+1)(n+2)...(p1))=1(mod  p)

我们令 pn=x

n!·((px+1)(px+2)...(p1))=p1(mod  p)

那么:

(n!)=(px+1)(px+2)...(p2)=(1)x2(x1)(x2)...(2)=(1)x(x1)!=(1)pn(p1n)!=(1)n+1(p1n)!

上面 px+1 变到 x1 其实就是把负号提出来了...

然后我们发现只要求出 (p1n)! 然后乘上 (1)n

这样的优化...可能没什么用?但是也是优化就是了...

posted @   Jμdge  阅读(2144)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
点击右上角即可分享
微信分享提示