威尔逊定理
前言
一个抽象的事情,我在证欧拉定理的时候,偶然发现了一个式子:
非常的偶然,实际上是证明欧拉定理的时候有一步搞错了,然后不得不想如何把 \((p-1)!\bmod p\) 消去,然后就很意外的发现了这个式子。
当时我不知道他到底是不是成立的,我试了好几个数都是满足的,于是我认为他是成立的,但是显然,我不会证。
于是我去找班里数奥的同学,让他帮我证一下,他说好像从哪儿看过……
于是果然这个式子早就是有人发现且证明过的,就是 威尔逊定理 。
威尔逊定理
若 \(p\) 是素数,则 \((p-1)!\equiv-1\pmod p\)
-
简单证明
若 \(p\) 是素数,取集合 \(A=\{1,2,3,…,p-1\}\) 。
则 \(A\) 构成模 \(p\) 乘法的简化剩余系,同时也是其完全剩余系除去 \(0\) 这个元素。
那么,存在任意 \(i\in A\) ,存在 \(j\in A\) ,使得 \((ij)\equiv1\pmod p\)
那么 \(A\) 中的元素是否恰好两两配对呢?不一定,需要考虑这种情况: \(i^2\equiv1\pmod p\)
解得: \(i\equiv1\pmod p\) 或 \(i\equiv p-1\pmod p\)
其余两两配对,所以满足:
\((p-1)!\bmod p\equiv 1\times (p-1)\equiv-1\pmod p\)
-
详细解剖证明过程
根据数奥同学的学案,先导入另一个例题:
设 \(p\geq 5\) 是素数,\(a\in \{2,3,…,p-2\}\) ,则在数列 \({a,2a,3a,…,(p-1)a,pa}\) 中有且只有一个数 \(b\) ,满足 \(b\equiv1\pmod p\) ,此外,如 \(b=ka\) ,则 \(k\neq a\) ,\(k\in \{2,3,…,p-2\}\) 。
那么这个东西怎么证,又和威尔逊定理又什么关系呢?
- 证明:
-
存在性
∵ \(p\) 为素数,\(a\in \{2,3,…,p-2\}\)
∴ \(\gcd(a,p)=1\)
∴ \(\{a,2a,…,pa\}\) 是 \(\bmod p\) 的完全剩余系
∴ 必定存在 \(k\) ,使得 \(ka\equiv1\pmod p\) ,即 \(b=ak\)
-
\(k\neq a\)
假设 \(k=a\) ,则 \(a^2\equiv 1\pmod p\)
∴ \(p|a^2-1\) , \(p|(a+1)(a-1)\)
∴ \(p|(a+1)\) 或 \(p|(a-1)\)
∵ \(a\in\{2,3,…,p-2\}\)
∴ \(a-1\in\{1,2,…,p-1\}\)
∴ \(\gcd(a-1,p)=1\)
而 ∴ \(p|(a+1)\) 或 \(p|(a-1)\) 与 \(\gcd(a-1,p)=1\) 矛盾
从而通过反证法,证得 \(k\neq a\)
-
\(k\neq 1\)
假设 \(k=1\) ,则 \(a\equiv 1\pmod p\) ,与 \(a\in\{2,3,…,p-2\}\) 矛盾
从而证得 \(k\neq 1\)
-
\(k\neq p-1\)
与上面类似的
假设 \(k=p-1\) ,则 \((p-1)a\equiv 1\pmod p\)
∴ \(a\equiv -1\pmod p\) ,即 \(a\bmod p=p-1\)
与 \(a\in\{2,3,…,p-2\}\) 矛盾
从而证得 \(k\neq p-1\)
-
唯一性
设 \(ak\equiv ak'\pmod p\)
∵ \(\gcd(a,p)=1\)
∴ \(k\equiv k'\pmod p\)
∴ \(k=k'\)
∴ \(k\) 唯一
现在把我们上面证明出来的式子带入我们的简单证明过程中
存在任意 \(i\in A\) ,存在 \(j\in A\) ,使得 \((ij)\equiv1\pmod p\)
可以用存在性和唯一行证明。
而
那么 \(A\) 中的元素是否恰好两两配对呢?不一定,需要考虑这种情况: \(i^2\equiv1\pmod p\) 。解得: \(i\equiv1\pmod p\) 或 \(i\equiv p-1\pmod p\) 。其余两两配对
可以用 \(k\neq 1\) 且 \(k\neq p-1\) 证明。
从而,我们证明了威尔逊定理。
证毕。
扩展
前言:此部分纯凭个人想象(当然式子是正确的),并非扩展威尔逊定理,若想了解更多真正的扩展,请见 \(oi-wiki\)
大前提:\(p\) 为素数
- 威尔逊定理:\((p-1)!\bmod p=p-1\)
-
\((p-2)!\bmod p=1\)
显然的,同时除以 \(p-1\)
-
\((p-3)!\bmod p=\dfrac{p-1}{2}\)
此式子需满足前提 \(p\) 为 \(>2\) 的素数
-
证明:
\((p-2)!\equiv(p-2)\times (p-3)!\bmod p\pmod p\)
在 \(\{1!\bmod p,2!\bmod p\,…,(p-1)!\bmod p\}\) 中,满足其值 \(\geq 1\) 且 \(\leq p-1\)
不妨设 \((p-3)!\bmod p=p-b\) ,其中 \(1\leq b\leq p-1\) 且 \(b\) 为整数
原式就变成了 \((p-2)(p-b)\bmod p\)
将括号拆开,得 \((p^2-(2+b)p+2b)\bmod p\) ,得到一个多项式
其中,每一项中只要是带 \(p\) 的,\(\bmod p\) 后一定是 \(0\) ,所以原式 \(=2b\bmod p\)
即 \(2b\equiv 1\pmod p\) ,从而得 \(2b=kp+1\) ,其中 \(k\) 为非负整数
同时 \(1\leq b\leq p-1\) ,所以 \(2\leq 2b\leq 2p-2\) ,从而得到 \(k\) 只能等于 \(1\)
所以 \(2b=p+1\) ,\(b=\dfrac{p+1}{2}\)
所以 \((p-3)!\bmod p=(p-b)=\dfrac{p-1}{2}\)
-
-
\((p-a)(p-b)\equiv ab\pmod p\)
在推上一个式子中可以发现,证明过程去上一个证明中刨。
和 \(\text{C}_{n}^{m}=\text{C}_{n}^{n-m}\) 是类似的。
-
在计算 \(n!\bmod p\) 时,如果 \(n>p\) ,因为通常情况下,在题目中,常常要把 \(n!\) 中 \(p\) 的倍数去掉,首先 \(p\) 显然是素数。
那么 \(n!\bmod p=((p-1)!^{\lfloor\dfrac{n}{p}\rfloor}\bmod p\times(n\bmod p)!\bmod p)\bmod p\)
设 \(a=\lfloor\dfrac{n}{p}\rfloor\) ,其中 \((p-1)^a\bmod p\) 的值可以简化
已知 \(p-1\equiv -1\pmod p\) ,那么 \((p-1)^a\equiv (-1)^a\pmod p\)
那么 \(n!\bmod p=((p+(-1)^{\lfloor\dfrac{n}{p}\rfloor})\bmod p\times (n\bmod p)!\bmod p)\bmod p\)
其中 \((p+(-1)^{\lfloor\dfrac{n}{p}\rfloor})\bmod p\) 加上一个 \(p\) 不会改变 \(\bmod p\) 的值,同时防止出现负数的情况。
这样,当 \(n>p\) 时,\(n!\bmod p\) 的复杂度就可以压死到 \(O(p-1)\) 以内。